| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:假如输出应该是一个Fibonacci数列.这样为啥不行?
只看楼主 加入收藏
given01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-11-4
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:6 
假如输出应该是一个Fibonacci数列.这样为啥不行?
#include<stdio.h>


int main(void)
{
    int total;
    int baby;
    int n;
    int days;
    total=1;
    baby=1;
    printf("For which day do you want to know the number of roborabbits?\n");
    scanf("%d",&days);
    if (0<days<=2){
        printf("On day %d there is 1 roborabbit.", days);
    }
    else if (days>2){
        for(n=1;n<=days-2;n++){
            total=total+baby;
            baby=total-baby;
        }
            printf("On day %d there is %d roborabbit.", days, total);}

}

[ 本帖最后由 given01 于 2012-11-4 05:23 编辑 ]
搜索更多相关主题的帖子: number baby include void total 
2012-11-04 04:52
given01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-11-4
收藏
得分:0 
输出的兔子数应该是一个Fibonacci数列...
就是第一天1只.第二天1只第三天2只...等等....求睾丸解答!
2012-11-04 04:56
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
这样呢

#include<stdio.h>


int main()
{
    int total;
    int days;
    printf("For which day do you want to know the number of roborabbits?\n");
    scanf("%d",&days);
    if (days<=2 && days>0)
    {
        total=1;
    }
    else if (days>2)
    {
        int qian1=1;
        int qian2=1;
        for(int n=1;n<=days-2;n++)
        {
            total=qian1+qian2;
            qian2=qian1;
            qian1=total;
         
        }
    }
    printf("On day %d there is %d roborabbit.", days, total);
   
    return 0;

}

[ 本帖最后由 wp231957 于 2012-11-4 07:37 编辑 ]

DO IT YOURSELF !
2012-11-04 07:36
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:5 
程序代码:
//首先说说fibonacci数列应该是0 1 1 2 3 5 8 ... 这样一个数列,既后一项等于前两项之和(fib[i] = fib[i-1] + fib[i-2])

#include <stdio.h>

#define MAX 55

int main()
{
    int i,days,fib[MAX]={0};

    fib[0]=0;fib[1]=1;fib[2]=2;

    for(i=2;i<MAX;i++)    fib[i]=fib[i-1]+fib[i-2];//前面这些工作其实就是把你要用的fibonacci数列初始化

    scanf("%d",&days);

    for(i=1;i<=days;i++) printf(i-1 ? " %d" : "%d",fib[i]);
    printf("\n");
    return 0;
}

编程之路定要走完……
2012-11-04 08:09
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
fibonacci数列的实现的方法有很多种,迭代,递归,都可以,以上是我写的迭代代码,希望楼主能认真的读一下。然后你可以换一种思路再写写。

编程之路定要走完……
2012-11-04 08:11
given01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-11-4
收藏
得分:0 
回复 5楼 C_戴忠意
谢谢了.....我自己弄好了....但是不知道为什么饿...
我就是吧if 和else if 后面的statement 换了下位置就可以了.....但是为什么呢?
2012-11-04 19:51
given01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-11-4
收藏
得分:0 
回复 3楼 wp231957
谢谢!
2012-11-04 19:52
快速回复:假如输出应该是一个Fibonacci数列.这样为啥不行?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034905 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved