Your objective for this question is to develop a program which will generate a fibbonacci number. The fibbonacci function is defined as such:
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
Your program should be able to handle values of n in the range 0 to 50.
f(0) = 0
f(1) = 1
f(n) = f(n-1) + f(n-2)
Your program should be able to handle values of n in the range 0 to 50.
3 4 5 -1
2
3
5
you can use 64bit integer: __int64
#include<stdio.h>
void main() {
long long f[55];
int n, i;
while (scanf_s("%d", &n) && n != -1) {
f[0] = 0;
f[1] = 1;
for (i = 2; i <= n; i++) {
f[i] = f[i - 1] + f[i - 2];
}
printf("%I64d\n", f[n]);
}
}
long long f[55];
int n, i;
while (scanf_s("%d", &n) && n != -1) {
f[0] = 0;
f[1] = 1;
for (i = 2; i <= n; i++) {
f[i] = f[i - 1] + f[i - 2];
}
printf("%I64d\n", f[n]);
}
}
本文介绍了一种高效计算斐波那契数的方法,避免了传统递归方法的超时问题。通过使用数组记录每个已计算的值,使得后续计算能够复用之前的结果,大大提高了计算效率。
512

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



