打印斐波那契(Fibonacci)数列

需求:打印 Fibonacci数列

思路:
当前项的值等于前两项数值的和
F=(F-1)+F(F-2)

样例:
输入:10
输出:1 1 2 3 5 8 13 21 34 55

辗转相加法实现

#include<stdio.h>
int main()
{
    int num, f, f1, f2, i;
    scanf("%d", &num);    //用户输入打印的次数
    f1 = f2 = 1;
    
    for(i = 1; i <= num; i++)    //打印的次数
    {
        if(i==1 || i==2)    //第一项第二项数值都是 1
            printf("%d  ", f1);
        else    
            {
                f = f1+f2;
                f1 = f2;    //    移动数值
                                f2 = f;
                printf("%d  ", f);
            }
    }
    return 0; 
} 

递归实现

#include<stdio.h>
int fibo(int);
int main()
{
    int num, i;
    scanf("%d", &num);
    for(i = 1; i <= num; i++)
        printf("%d  ", fibo(i));
    return 0; 
} 
int fibo(int n)
{
    if(n==1 || n==2)
        return 1;
    else
        return fibo(n-1)+fibo(n-2);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值