n n n1 01 int factorialint n if

  • Slides: 15
Download presentation

 רקורסיות חישוב עצרת n ! = n * (n-1) ! 0!=1 int factorial(int

רקורסיות חישוב עצרת n ! = n * (n-1) ! 0!=1 int factorial(int n) { if (n==0) return 1; return n*factorial(n-1); } n ! = n* (n-1) * … * 1 int factorial(int n) { int fact =1; while (n >= 1) { fact *=n; n--; } return fact; }

 פתרון int sum(int n) { if (n==1) return 1; } return n+sum(n-1);

פתרון int sum(int n) { if (n==1) return 1; } return n+sum(n-1);

 רקורסיות חישוב חזקה ברקורסיה int power(int x, int y) { if (y ==

רקורסיות חישוב חזקה ברקורסיה int power(int x, int y) { if (y == 0) return 1; } return x * power(x, y -1);

 רקורסיות פתרון int mul(int x, int y) { if (y==1) return x; }

רקורסיות פתרון int mul(int x, int y) { if (y==1) return x; } return x+mul(x, y-1);

 רקורסיות פתרון int div(int x, int y) { if (y>x) return 0; }

רקורסיות פתרון int div(int x, int y) { if (y>x) return 0; } return 1 + div(x-y, y);

 רקורסיות void wrt_it(); int main() { printf("Input a linen"); wrt_it(); printf("n"); return 0;

רקורסיות void wrt_it(); int main() { printf("Input a linen"); wrt_it(); printf("n"); return 0; } void wrt_it() { char ch; scanf("%c", &ch); printf("%c", ch); if (ch != 'n') wrt_it(); } פתרון

 רקורסיות void wrt_it(); int main() { printf("Input a linen"); wrt_it(); printf("n"); return 0;

רקורסיות void wrt_it(); int main() { printf("Input a linen"); wrt_it(); printf("n"); return 0; } void wrt_it() { char ch; scanf("%c", &ch); if (ch != 'n') wrt_it(); printf("%c", ch); } פתרון

 רקורסיות פונקציה רקורסיבית int fib_rec(int n) { if (n<= 1) return n; else

רקורסיות פונקציה רקורסיבית int fib_rec(int n) { if (n<= 1) return n; else return fib_rec(n-1) + fib_rec(n-2); }

 רקורסיות int fib_iter(int n) פונקציה איטרטיבית { int prev 1 = 0, prev

רקורסיות int fib_iter(int n) פונקציה איטרטיבית { int prev 1 = 0, prev 2 = 1, current, count; } for (count=0; count<n; count++ ) { current = prev 1 + prev 2; prev 1 = prev 2; prev 2 = current; } return prev 1;