| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1153 人关注过本帖
标题:错在哪里。。。。新手,别骂我。。。兔子问题
只看楼主 加入收藏
mzxws1976
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-3-2
收藏
得分:0 
回复 2楼 张敏樱木花道
公元1202年,一位意大利比萨的商人斐波拉契在他的《算盘全书》中提出过一个“养兔问题”:假定一对兔子在它们出生整整两个月以后可以生一对小兔子,其后每隔一个月又可以再生一对小兔子。如果现在一个笼子里有一对大兔子和它们刚生下来的一对小兔子,请问一年以后笼子里应该有几对兔子?
2011-03-30 10:43
mzxws1976
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-3-2
收藏
得分:0 
回复 2楼 张敏樱木花道
这里没错的哦。
2011-03-30 10:45
mzxws1976
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-3-2
收藏
得分:0 
回复 5楼 sanye2010
大哥,你这个是求每个月有多少对出生的,小弟题目发在回复那里了,求的是第N个月一共有多少对兔子。(*^__^*) 嘻嘻……
2011-03-30 10:55
dyk8856416
Rank: 1
等 级:新手上路
帖 子:10
专家分:1
注 册:2010-9-26
收藏
得分:1 
不能用,应该用;
2011-03-31 11:11
绯苍幻想曲
Rank: 2
等 级:论坛游民
帖 子:34
专家分:49
注 册:2010-11-29
收藏
得分:1 
回复14楼的同学,逗号运算符可以的吧....
程序代码:
#include<stdio.h>
main()
{
    int i,j,k,l;
    i=1,j=2,k=3,l=4;
    printf("%d %d %d %d\n",i,j,k,l);
    return 0;
}
这个你们看,就是可以成功赋值的.
2011-03-31 23:52
枝繁叶茂
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2011-3-27
收藏
得分:1 
发水帖

好想死
2011-04-02 00:02
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
收藏
得分:1 
恕我直言,不是错在哪的问题,而是你的整个代码都应该重写。

my tech blog: /hoodlum1980
2011-04-02 06:59
王立帅
Rank: 3Rank: 3
来 自:山东淄博
等 级:论坛游侠
帖 子:61
专家分:160
注 册:2011-4-4
收藏
得分:1 
这个题目是一个变化了的斐波那契数学问题,注意到起始的兔子数目。
注释其实挺重要的,至少几个变量的含义写明;
根据你的代码,添加注释
#include <stdio.h>
void main()
{
    int i,j,k,month,N;                      // i , j 两个初试变量分别代表斐波那契数列的第一个和第二个数,在兔子问题中前两个月幼兔的数量不会增加;
    i=1,j=1,k = 2,month=1;         // k 无须赋值,应该声明一个变量,说明成年兔子
    scanf("%d",&N);                     //N是你所期望N个月之后的兔子数;
    while(N>=month)                 //感觉写成  while(month <= N) 比较容易理解;
    {
        k=k+i;                             //根据你上面给出的题目,幼兔在前两个月不产崽,故应该加判断条件
        i=i+j;                                       if(month >= 2) 才执行下面语句
        month=month+1;                   {            k = j;    j = i + j;  i = k;        }   //这里 k只做中间变量,无实际含义
            if(N<month)                        month++;   //月份自加;
            printf("%d\n",k);                   m++;          //这是这个问题的关键,成年兔子的产崽数目;
        else
            k=k+j;
        j=i+j;                                         
        month=month+1;
    }
    printf("%d\n",k);                       //N各月之后 兔子数应该为  m + j;
}
/***************************************************************/
#include <stdio.h>

void main()
{
    int i = 1, j = 1, month = 1,m = 1,k,sum;   // m 是用来记录成年兔子产崽数; sum 记录兔子总数
    int N;

    scanf("%d", &N);
    while(month <= N)
    {
        if(month >= 2)             //两个月之内 幼兔不产崽,所以当月份大于等于2时才执行 下面三个语句;
        {
            k = j;
            j = i + j;
            i = k;
        }
        month++;
        m++;                        //每个月成年兔子都产崽;
    }
    sum = m + j;
    printf("%d\n",sum);
}


[ 本帖最后由 王立帅 于 2011-4-4 15:58 编辑 ]
收到的鲜花
  • 低调的兔子2011-04-04 19:07 送鲜花  3朵   附言:我很赞同

一个人走
2011-04-04 15:07
快速回复:错在哪里。。。。新手,别骂我。。。兔子问题
数据加载中...
 
   



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

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