//斐波那契数列的前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;
}