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
展开
 我来答
ice_cream106
推荐于2016-04-24 · TA获得超过177个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:148万
展开全部
#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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
serenity鱼
2014-12-01 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:146
采纳率:100%
帮助的人:78.7万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
silenceandluo
2014-12-01 · TA获得超过1046个赞
知道小有建树答主
回答量:713
采纳率:0%
帮助的人:271万
展开全部
#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);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式