c语言解答:用递归方法求费波纳茨数列第20项的数。

2025-03-04 22:31:38
推荐回答(3个)
回答1:

#include 


int fib(int x) {
    if (x == 1) {
        return 1;
    } else if (x == 0) {
        return 0;
    } else {
        return fib(x-1)+fib(x-2);
    }
}

int main() {
    printf("%d\n", fib(20);
}

回答2:

//打印了前20项
int Fibonacci(int cnt)
{
    if(cnt<= 0) //参数非法的话,直接退出程序
    {
        exit(1);
    }

    if((cnt == 1) || (cnt == 2))  //第一和第二项是1
    {
        return 1;
    }

    return Fibonacci(cnt - 1) + Fibonacci(cnt - 2); //第N项是第N-1项和第N-2项的和
}

void main()
{
    int i;

    for(i = 1; i <= 20; i++)
    {
        printf("%d ", Fibonacci(i));
    }

    return;
}

回答3:

递归效率很低,如果不是考试或作业的话,建议用动态规划。