| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1791 人关注过本帖
标题:【求助】牛的繁殖问题!
只看楼主 加入收藏
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
【求助】牛的繁殖问题!
原题目如下:
若一头刚出生的小母牛从第四个年头开始,每年初生一头小母牛,且没有牛死亡,按此规律,第20年时共有多少头母牛?
我写的代码如下:
程序代码:
#include<stdio.h>
int main(void)
{
    int i,a=1,b=0,c=0,d=1;
    printf("a\tb\tc\td\n");
    for(i=1;i<=20;i++)
    {
        printf("%d\t%d\t%d\t%d\n",a,b,c,d);
        a=b;
        b=c;
        c=d;
        d=a;
        d=a+c;
    }
    printf("第20年的牛的总数为%d只!\n",d);
    return 0;
}
i是年份,a、b、c、d分别是每年生下来的母牛数,程序最后输出的结果是1278,但是如果把printf()函数改为printf("第20年的牛的总数为%d只!\n",c);的话,输出的结果就是正确答案872,我自己总结出的公式是第四年所生母牛数等于第一年和第三年的所生母牛数的和。
我也有在网上找到过答案,但我想自己写,可是不知道是逻辑错误还是其他错误,请各位前辈斧正!谢谢!
补充一下:第二个printf()函数的作用是列出计算机执行的过程!


[ 本帖最后由 mandown1991 于 2011-3-18 14:01 编辑 ]
搜索更多相关主题的帖子: color 
2011-03-18 14:00
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:4 
#include<stdio.h>
int main()
{
   int i,n,a[60];
   while(scanf("%d",&n)!=EOF)
   {
       if(n==0) break;
       a[1]=1;a[2]=2;a[3]=3;a[4]=4;
       if(n>4)
       {
         for(i=5;i<=n;i++)
             a[i]=a[i-1]+a[i-3];
         printf("%d\n",a[n]);
       }
       else printf("%d\n",a[n]);
   }
  return 0;
}
2011-03-18 14:24
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:4 
2011-03-18 14:41
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:0 
回复 3楼 刘定邦
哇!!高啊!实在是高!收藏了!谢谢啊!
2011-03-18 22:34
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:0 
回复 2楼 草狼
谢谢你的回复!请问如果不用数组行不行啊!
2011-03-18 22:36
回水
Rank: 2
来 自:广东湛江
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-3-3
收藏
得分:4 
看不懂啵,学习学习
2011-03-18 22:59
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:4 
看看!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-03-18 23:00
爱海松涛
Rank: 3Rank: 3
来 自:安徽合肥
等 级:论坛游侠
帖 子:120
专家分:197
注 册:2011-2-25
收藏
得分:4 
是不错的啊。。
2011-03-18 23:22
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:0 
我换了个思路:
程序代码:
#include <stdio.h>
int main(void)
{
    int a=1,b=1,c=1,d=0,i;   
    printf("a\tb\tc\td\n");
    printf("%d\t%d\t%d\t%d\n",a,b,c,d);
    for(i=4;i<=20;i++)
    {
        d=a+c;
        a=b;
        b=c;
        c=d;
        printf("%d\t%d\t%d\t%d\n",a,b,c,d);
    }
    printf("第20年母牛的总数为%d\n",d);
    return 0;
}
这样就行了,令a、b、c、d分别代表总共的母牛数,我觉得这样比较方便!
2011-03-19 00:09
yangyang1207
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-7-18
收藏
得分:0 
#include"stdio.h"
int main()
{
    int ffirst, fnext, fthen, flast;
    ffirst = 1; fnext = 2; fthen = 3; flast = 4;
    int a, i;
    int swap;
    scanf_s("%d", &a);
    for (i = 5; i <=a; i++)
    {
        swap= ffirst + fnext + fthen;
        ffirst = fnext;
        fnext = fthen;
        fthen = flast;
        flast = swap;
        printf_s("%d\n",ffirst);
        
    }
   
    return 0;
    /* 我们要求下一个是什么,也就是下一年是多少个*/
}
这是我的解答,烦请大神找找问题
2016-07-18 16:00
快速回复:【求助】牛的繁殖问题!
数据加载中...
 
   



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

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