斐波那契数列(Fibonacci sequence)指的是这样一个数列:
1,1,2,3,5,8,13,21,34,55,89...
从第3项开始,每一项都等于前两项之和。
递归算法在计算时存在着大量的重复计算,执行效率低,n值稍大时非常耗费时间。
#includeint fib(int n) { if (n <= 2) return 1; else return fib(n - 1) + fib(n - 2); } int main() { int n = 0; scanf("%d", &n); int ret = fib(n); printf("%dn", ret); return 0; }
斐波那契数列用迭代算法更高效。
#includeint fib(int n) { int a = 1; int b = 1; int c = 0; while (n >= 3) { c = a + b; a = b; b = c; n--; } return c; } int main() { int n = 0; scanf("%d", &n); int ret = fib(n); printf("%dn", ret); return 0; }



