//输出斐波那契数列的前40个数 和指定输出第几位数

//斐波那契数列的前40个数
 
#include<stdio.h>
int main()
{
    int f1 = 1, f2 = 1, f3=0;
    int i;
    printf("%12d\n%12d\n", f1, f2);
        for (i = 1; i <= 38; i++) {
            f3 = f1 + f2;
            f1 = f2;
            f2 = f3;
            printf("%12d\n", f3);
    }

    return 0;
}

这样做虽然可以 但是换行输出读者不易阅读 并且还可以有更简便的方法,接下来我们就说说更简便的方法

//斐波那契数列的前40个数
 
#include<stdio.h>
int main()
{
    int f1 = 1, f2 = 1;
    int i;
        for (i = 1; i <= 20; i++) {
        printf("%12d%12d", f1, f2);
        if (i % 2 == 0) {   //每次输出两位数两次输出四位数  所以四位数一行
            printf("\n");
        }
        f1 += f2 ;
        f2 += f1;
    }
    return 0;
}


还可以用数组解决此类问题 因为数字可以存储数据 可以输出第几位fabonacci的数据


#include<stdio.h>
int main()
{
	int i ;
	int a[20]={1,1};//在这里我们先求出前20位的斐波那契数列先给前两位赋初值
	for (i = 2; i < 20; i++) {   //18个空位给18位数
		a[i] = a[i - 2] + a[i - 1];
		//printf("%d", a[i]);//在里面输出就没有第一第二项了所有i在循环外输出

	}
	//printf("%d", a[i]);乱码我也我不知道为啥
	for(i=0;i<20;i++){
		if (i % 5 == 0) {
			printf("\n");//五个数据一行
		}
		printf("%d\t", a[i]);
	}

	return 0;
}


如果想输出第几位斐波那契数列可以这样


#include<stdio.h>
int main()
{
	int i;
	int a[20] = { 1,1 };//在这里我们先求出前20位的斐波那契数列先给前两位赋初值
	for (i = 2; i < 20; i++) {   //18个空位给18位数
		a[i] = a[i - 2] + a[i - 1];
		//printf("%d", a[i]);//在里面输出就没有第一第二项了所有i在循环外输出
		
	}
	printf("%d", a[8]);
	//printf("%d", a[i]);乱码我也我不知道为啥
	for (i = 0; i < 20; i++) {
		if (i % 5 == 0) {
			printf("\n");//五个数据一行
		}
		//printf("%d\t", a[2]);
	}

	return 0;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值