波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、...
int fib1(int n) { //递归实现
if (n < 1) {
return -1;
}
if (1 == n || 2 == n) {
return 1;
}
return fib1(n - 1) + fib1(n - 2);
}
int fib2(int n) { //非递归实现
if (n < 1) {
return -1;
}
if (1 == n || 2 == n) {
return 1;
}
int f1 = 1;
int f2 = 1;
int f3 = 2;
for (int i = 3; i <= n; ++i) {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
int main() {
int n, result;
printf("input item number:\n");
scanf_s("%d", &n);
result = fib1(n);
printf("非递归:the result is %d\n", result);
result = fib2(n);
printf("递 归:the result is %d\n", result);
}