Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- long long fibRecursive(int n,int *function_calls);
- long long fibIterative(int n);
- int main()
- {
- int n;
- long long fib;
- printf("Please Enter a Positive (non zero) Integer, and this program will calculate its Fibonacci Number:\n");
- scanf("%d",&n);
- int function_calls = 0;
- fib = fibRecursive(n,&function_calls);
- printf("Fibonacci number is %d\nit took %d function calls to calculate this using a recursive function\n",fib,function_calls);
- printf("\n\n");
- fib = fibIterative(n);
- printf("Fibonacci number is %lld\nit took %d iterations to calculate this using an iterative function\n",fib,n);
- }
- long long fibRecursive(int n,int *function_calls)
- {
- *function_calls++;
- if(n > 2)
- {
- return fibRecursive(n-1,function_calls) + fibRecursive(n-2,function_calls);
- }
- else
- {
- return 1;
- }
- }
- long long fibIterative(int n)
- {
- long long fib1 = 1, fib2 = 1, temp = 0;
- for(int i = 2 ; i < n ; i++)
- {
- temp = fib2;
- fib2 = fib1 + fib2;
- fib1 = temp;
- }
- return fib2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement