#include <stdio.h>
int fib(int n)
{
int a = 1;
int b = 1;
int c = a = b;
int i = 0;
for (i = 3; i <= n; i++)
{
c = a + b;
a = b;
b = c;
}
return c;
}
int main()
{
printf("%d\n", fib(10000));
getchar();
return 0;
}
非遞歸方法
#include <stdio.h>
int fib(int n)
{
int count = 0;
if (n <= 2)
return 1;
else if (n == 4)
count++;
else
return fib(n - 2) + fib(n - 1);
}
int main()
{
printf("%d\n", fib(10000));
getchar();
return 0;
}
遞歸實現方法
總結:遞歸的效率較循環等方法,效率較低,尤其數值較大時,效率極慢,且易造成棧溢出。