【9401】斐波那契数列

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;
}


 

原文地址:https://www.cnblogs.com/AWCXV/p/7632427.html