Time Limit: 10 second
Memory Limit: 2 MB
问题描述
斐波那契数列0,1,1,2,3,5,8,13,21,34,55...从第三项起,每一项都是紧挨着的前两项的和,写出计算斐波那契数列任意一个数据项的递归程序。
Input
输入格式
Output
数据项的值
Sample Input
10
Sample Output
34
【题解】
让a = 0,b = 1,如果n <=2 则要进行特判。佛则 直接累加到c,然后a = b,b =c,这样就可以了。最后输出c
【代码】
#include <cstdio> #include <stdlib.h> int n,a,b,c; void input_data() { scanf("%d",&n); } void get_ans() { a = 0; b = 1; if (n == 1) //这里进行n = 1和n = 2的特判 { printf("%d",a); exit(0); } if (n == 2) { printf("%d",b); exit(0); } for (int i = 3;i <= n;i++) //如果大于3 则进行迭代。最后输出c { c = a + b; a = b; b = c; } printf("%d",c); } int main() { input_data(); get_ans(); return 0; }