Advertisement
What_Ever

Untitled

Dec 17th, 2015
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include <stdio.h>
  2. long long fibRecursive(int n,int *function_calls);
  3. long long fibIterative(int n);
  4. int main()
  5. {
  6.     int n;
  7.     long long fib;
  8.     printf("Please Enter a Positive (non zero) Integer, and this program will calculate its Fibonacci Number:\n");
  9.     scanf("%d",&n);
  10.     int function_calls = 0;
  11.  
  12.  
  13.     fib = fibRecursive(n,&function_calls);
  14.  
  15.     printf("Fibonacci number is %d\nit took %d function calls to calculate this using a recursive function\n",fib,function_calls);
  16.  
  17.     printf("\n\n");
  18.  
  19.  
  20.     fib = fibIterative(n);
  21.  
  22.  
  23.     printf("Fibonacci number is %lld\nit took %d iterations to calculate this using an iterative function\n",fib,n);
  24. }
  25. long long fibRecursive(int n,int *function_calls)
  26. {
  27.     *function_calls++;
  28.     if(n > 2)
  29.     {
  30.         return fibRecursive(n-1,function_calls) + fibRecursive(n-2,function_calls);
  31.     }
  32.     else
  33.     {
  34.         return 1;
  35.     }
  36. }
  37. long long fibIterative(int n)
  38. {
  39.     long long fib1 = 1, fib2 = 1, temp = 0;
  40.     for(int i = 2 ; i < n ; i++)
  41.     {
  42.         temp = fib2;
  43.         fib2 = fib1 + fib2;
  44.         fib1 = temp;
  45.     }
  46.     return fib2;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement