C语言问题,这题我不会,求大神求解啊
题目描述Fibonacci(1175?~1250?)是中世纪最杰出的数学家。他原名LeonardoofPisa,后以波那契之子而闻名。他于1175年出生于比萨,父亲是个商...
题目描述
Fibonacci(1175?~1250?)是中世纪最杰出的数学家。
他原名Leonardo of Pisa,后以波那契之子而闻名。他于1175年出生于比萨,父亲是个商人,很早就激发了这个小孩对算术的兴趣。他们旅行到西西里,埃及和叙利亚,实际上接触到阿拉伯的数学历练。 Fibonacci很快就发现了十进制数系统的好处,在数字及计算上比当时通行的但十分笨拙的罗马数字系统优越得太多。1202年,他回到家乡,发表了著名的《算盘书》,将阿拉伯数字系统引进欧洲,立刻大受欢迎,并且很快地流传开来,不久便取代了罗马数系。
这本书共十五章,包括了阿拉伯数字的写法与读法,整数及分数的计算,平方根与立方根的计算,用试位法及代表解法解线性及二次方程等等。书中包含了许多问题,其中又以「兔子问题」最为有名:
一对兔子,每月生一对小兔子,新生的小兔子过了两个月以后又开始生小兔子,问:一对兔子一年能繁殖多少兔子?
根据题意,以Fn表示个月以后兔子的总对数,则F1=1,F2=1,F3=2,F4=3,F5=5,F6=8,F7=13,F8=21,…,这个数列就叫作Fibonacci数列(或称费氏数列),引起了后世源源不断的兴趣。
输入
输入多行,每行包括一个1~30范围内的数n,最后一行以0结束。
输出
按行输出Fibonacci数列中的第n个数。参见Sample
样例输入
3
4
5
8
0
样例输出
2
3
5
21 展开
Fibonacci(1175?~1250?)是中世纪最杰出的数学家。
他原名Leonardo of Pisa,后以波那契之子而闻名。他于1175年出生于比萨,父亲是个商人,很早就激发了这个小孩对算术的兴趣。他们旅行到西西里,埃及和叙利亚,实际上接触到阿拉伯的数学历练。 Fibonacci很快就发现了十进制数系统的好处,在数字及计算上比当时通行的但十分笨拙的罗马数字系统优越得太多。1202年,他回到家乡,发表了著名的《算盘书》,将阿拉伯数字系统引进欧洲,立刻大受欢迎,并且很快地流传开来,不久便取代了罗马数系。
这本书共十五章,包括了阿拉伯数字的写法与读法,整数及分数的计算,平方根与立方根的计算,用试位法及代表解法解线性及二次方程等等。书中包含了许多问题,其中又以「兔子问题」最为有名:
一对兔子,每月生一对小兔子,新生的小兔子过了两个月以后又开始生小兔子,问:一对兔子一年能繁殖多少兔子?
根据题意,以Fn表示个月以后兔子的总对数,则F1=1,F2=1,F3=2,F4=3,F5=5,F6=8,F7=13,F8=21,…,这个数列就叫作Fibonacci数列(或称费氏数列),引起了后世源源不断的兴趣。
输入
输入多行,每行包括一个1~30范围内的数n,最后一行以0结束。
输出
按行输出Fibonacci数列中的第n个数。参见Sample
样例输入
3
4
5
8
0
样例输出
2
3
5
21 展开
展开全部
#include <stdio.h>
int main()
{
long f[32]={0,1,1};
int i,n;
for(i=3;i<=30;i++)
{
f[i]=f[i-1]+f[i-2];
}
while(1)
{
scanf("%d", &n);
if(n==0)
break;
printf("%ld\n", f[n]);
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
long f(int i){
if(i == 1 || i == 2)
return 1;
else
return f(i-1)+f(i-2);
}
int main()
{
bool flag = true;
while(flag )
{
scanf("%d", &n);
if(n==0)
flag = false;
else
printf("%ld\n", f(n));
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
int main()
{ int i,n,f,f1,f2;
scanf("%d",&n);
while(n!=0)
{ f1=1;f2=1;
i=3;
while(i<=n)
{f=f1+f2;
f1=f2;
f2=f;
i++;
}
printf("%d ",f);
scanf("%d",&n);
}
}
int main()
{ int i,n,f,f1,f2;
scanf("%d",&n);
while(n!=0)
{ f1=1;f2=1;
i=3;
while(i<=n)
{f=f1+f2;
f1=f2;
f2=f;
i++;
}
printf("%d ",f);
scanf("%d",&n);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询