注意:40项斐波那契数列,数字将会非常大,int类型变量已无法存储!代码中使用到了64位无符号整型数unsigned __int64,以便满足题目要求且可继续扩展(比如输出50项)。
#include <stdio.h>
#define MAX 40 /*费波那契数列项数上限*/
void fibonacci (unsigned __int64 f[], int n) { /*生成n项费波那契数列,n=0为起始*/
int i;
f[0] = 0; /*F0=0*/
f[1] = 1; /*F1=1*/
for (i=2; i<=n; i++) /*Fn=Fn-1+Fn-2(n>=2)*/
f[i] = f[i-1] + f[i-2];
}
int main(void) {
unsigned __int64 f[MAX];
int i;
fibonacci (f, MAX);
printf ("前%d项斐波那契数列(自F0起):\n");
for (i=0; i<=MAX; i++) {
printf ("%I64u\t", f[i]);
if ((i+1)%5==0) /*5个数换行*/
printf ("\n");
}
printf("\n");
getch (); /*屏幕暂留*/
return 0;
}
运行结果
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/3ac79f3df8dcd100c70ff186788b4710b8122f81?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
如有问题,可点击头像联系我~~