C案例:打印斐波拉契数列

C案例:打印斐波拉契数列

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

任务:打印斐波拉契数列前40项,每行打印5个数。

1、源代码
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int i, count = 0;
    long f1, f2, f3;
    long f[40];
    
    printf("方法一:利用简单变量进行迭代\n"); 
    f1 = 1;
    f2 = 1;
    printf("%-8d %-8d ", f1 , f2);
    count = 2;
    
    for (i = 1; i <= 38; i++) {
        f3 = f1 + f2;
        printf("%-8d ", f3);
        f1 = f2;
        f2 = f3;
        count++;
        if (count % 5 == 0) {
            printf("\n");
        }
    }
        
    printf("\n\n方法二:利用数组进行递推\n");
    
    f[0] = 1;
    f[1] = 1;
    
    for (i = 2; i < 40; i++) {
        f[i] = f[i - 2] + f[i - 1];     
    }
    
    for (i = 0; i < 40; i++) {
        printf("%-8d ", f[i]);
        if((i + 1) % 5 == 0) {
            printf("\n");
        }   
    }    
    return 0;
}
2、运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒城译痴无心剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值