题目
样例
题解
#include <stdio.h>
long fibonacci(int n) {
// Write your code here
if (1 == n)
return 1;
if (2 == n)
return 1;
//a b temp
long a = 1;
long b = 1;
long temp = a + b;
for (int i = 2; i < n; i++)
{
temp = a + b;
a = b;
b = temp;
}
return temp;
}
int main() {
int n;
scanf("%d", &n);
printf("F(%d) = %ld\n", n, fibonacci(n));
return 0;
}
难点
此题的难点就是如果递归调用就会出现运行时间过长的情况,导致题目无法通过,故此处采用循环代替递归的方法,来解决此问题。