c语言求值不大于1000的斐波那契数列,并要求一行输出5个值后换行

如题所述

运行结果

#include <stdio.h>

int main(void)
{

//输出小于1000斐波那契数列
int x1=1,x2=1,x3=0;
int count = 0;
printf(" %d %d",x1,x2);
count+=2;
while(x3<1000)
{
x3=x1+x2;
if (count>=5)
{
printf("\n");
count = 0;
}
printf(" %d",x3);
x1 = x2;
x2 = x3;
count++;
}
getchar();
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-01

您好。首先您要知道斐波那契数列的含义:第一和第二个数分别为1,从第三个数开始,当前的数的值为与之相邻的前两个数之和,所以数列的3-8位的数分别为2,3,5,8,13,21。具体为:

第2个回答  2020-04-01


#include <stdio.h>

int f(int n, int f1, int f2)
{
if(n == 1)
return f1;
else if(n == 2)
return f2;
else
return f(n - 1, f2, f1 + f2);
}

int main()
{
for(int i = 1, j = 0;; i++)
if(f(i, 1, 1) > 1000)
break;
else
printf("%d%c", f(i, 1, 1), ++j % 5 == 0 ? '\n' : '\t');
return 0;
}

第3个回答  2020-04-01
以下是斐波那契数列的算法,你可以根据自己的需要进行适当的修改,谢谢
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n = 0;
int a = 1;
int b = 1;
int c = 0;
int i = 0;
scanf("%d", &n);
printf("%5d %5d ", a, b);
for (i = 0; i < n - 2;i++)
{
c = a + b;
a = b;
b = c;
printf("%5d ", c);
}
printf("\n");
system("pause");
return 0;
}
相似回答