【问题描述】输出斐波那契(Fibonacci)序列的前15项:
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610
斐波那契(Fibonacci)序列第1、第2项为1,后面的任意一项都是其前两项之和。
【样例输出】
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
【样例说明】
样例输出中,每个数字后面有3个空格。
求C语言高手帮忙做一道编程题,谢谢~
答案:5 悬赏:10 手机版
解决时间 2021-04-07 15:58
- 提问者网友:且恨且铭记
- 2021-04-06 20:40
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-04-06 22:09
#include <stdio.h>
void main()
{
int num1, num2, t;
num1=num2=1;
for(int i=0; i < 15; i++)
{
printf("%d ", num1);
t=num1;
num1=num2;
num2+=t;
}
}
void main()
{
int num1, num2, t;
num1=num2=1;
for(int i=0; i < 15; i++)
{
printf("%d ", num1);
t=num1;
num1=num2;
num2+=t;
}
}
全部回答
- 1楼网友:七十二街
- 2021-04-07 01:01
以前写的!!你编译下!!
#include <stdio.h>
#include <stdlib.h>
int func(int num);
int func(int num)
{
int i,a,b,c;
if(num<0)
{
printf("is error !\n");
exit(0);
}
if(num==0 || num==1)
return 1;
a=1,b=1,c=a+b;
for(i=2;i<num;i++)
{
a=b;
b=c;
c=a+b;
}
return c;
}
int main(void)
{
int num,tmp;
for(num=0;num<=40;num++)
{
tmp=func(num);
printf("%d ",tmp);
}
return 0;
}
- 2楼网友:不如潦草
- 2021-04-07 00:45
这里的 2 是说有两个问题要解决。
第一个问题,是说有 9 本书,3 个抄写员,9 本书的页数分别是:
100 200 300 400 500 600 700 800 900
第二个问题,是说有 5 本书,4 个抄写员,5 本书的页数分别是:
100 100 100 100 100
经过运算以后的输出,就是那两个问题的答案:
答案一:100 200 300 400 500 / 600 700 / 800 900
(第 1 个抄写员负责头五本书,第 2 个负责接着两本,第 3 个负责最后两本。)
答案二:100 / 100 / 100 / 100 100
(前 4 个抄写员各负责一本书,第 5 个负责两本。)
题目要求,书不可以分割,每本书只能交给一位抄写员,并且抄写员负责的书必须是连续的,所以输出答案的时候,才可以保持原来页数的次序,用 / 号表示工作分配。编程的目的,就是要找出费时最短的工作分配方法。费时长短取决于分配到最多工作的那位抄写员,所以要尽量减少最多的工作量。题目还说,如果答案不止一个,那么应尽量减少第 1 个抄写员的工作量,其次是尽量减少第 2 个抄写员的工作量,如此类推,但是每一位抄写员必须至少负责一本书。
- 3楼网友:平生事
- 2021-04-06 23:32
Fibonacci数列问题
无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
F(n)=1 ...........(n=1或n=2)
F(n)=F(n-1)+F(n-2).....(n>2)
现要你来求第n个斐波纳奇数。(第1个、第二个都为1)
**************************
***************************
#include <stdio.h>
int main()
{
int a,b,c,n,m;
scanf("%d",&m);
while(m--) //有m组数可以输入
{
scanf("%d",&n);
if(n==1)
c=1;
a=0;
b=1;
if(n>=2)
{
c=a+b;
a=b;
b=c;
n--;
}
printf("%d\t\t\t",c);
printf("\n");
}
return 0;
}
- 4楼网友:纵马山川剑自提
- 2021-04-06 22:51
#include<stdio.h>//不知道你学没学过数组,这是用数组做的
void main()
{
int a[15],i;
a[0]=a[1]=1;
for(i=2;i<15;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<15;i++)
printf("%d ",a[i]);
}
#include<stdio.h>//这是用普通方法做的
void main()
{
int f1,f2,i;
f1=f2=1;
for(i=0;i<=7;i++)
{
printf("%d %d ",f1,f2);
f1=f1+f2;
f2=f1+f2;
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯