要求每行输出几个数字?先写个每行输出5个数字的吧~~
另外需要注意,50项斐波那契数列,数字将会非常大。所以需要用到无符号64位整型变量unsigned __int64。
#include <
stdio.h>
int main(void) {
int n; // 输入一个数字 N
int i; // 第 i 个将要输出的斐波那契数
unsigned __int64 current; // 第 i 个斐波那契数的值
unsigned __int64 next; // 下一个(i+1)斐波那契数的值
unsigned __int64 twoaway; // 下下个(i+2)斐波那契数的值
printf("您需要斐波那契数列的前几项?请输入: ");
scanf("%d", &n);
if (n<=0)
printf("请输入
正整数!\n");
else {
printf("前%d项斐波那契数列为:\n",n);
next = current = 1;
for (i=1; i<=n; i++) {
printf("%I64u\t",current);
if (i%5==0) printf("\n");// 控制每输出5个数换一行
twoaway = current+next;
current = next;
next = twoaway;
}
printf("\n");
}
}
执行结果
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/2f738bd4b31c8701dd500aaa2d7f9e2f0608ff9c?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)