本题要求实现求Fabonacci数列项的函数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。
函数接口定义:
int fib( int n );
函数fib应返回第n项Fibonacci数。题目保证输入输出在长整型范围内。
裁判测试程序样例:
#include <stdio.h>
int fib( int n );
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", fib(n));
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
7
输出样例:
13
// int fib( int n ){
// if(n <= 1){
// return n;
// }
// return fib(n-1) + fib(n-2);
// }
// 使用迭代计算斐波那契数
int fib(int n) {
if (n <= 1) {
return n;
} else {
int a = 0, b = 1, c;
for (int i = 2; i <= n; i++) {
c = a + b; // 计算下一个数
a = b; // 更新a为前一个数b的值,为下一次循环做准备
b = c; // 更新b为当前计算出的数c的值,为下一次循环做准备
}
return b; // 返回第n个斐波那契数
}
}
678

被折叠的 条评论
为什么被折叠?



