鱼C论坛

 找回密码
 立即注册
查看: 5263|回复: 6

[争议讨论] 母牛小牛问题的算法

[复制链接]
发表于 2011-12-8 13:54:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
母牛生小牛
Problem
设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?

Input
本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50)

Output
对每组数据,输出一个整数(独占一行)表示第N年时母牛的数量

Sample Input
1
4
5
20

Sample Output
1
2
3
872
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-8 13:54:45 | 显示全部楼层
#include<iostream>
int cows(int year)
{int one=0,two=0,three=0,four=1;
if(year<4)
return 1;
else
for(int i=4;i<year+1;i++)
{   four=three+four;
        three=two;
        two=one;
        one=four;

}
return one+two+three+four;
}
int main()
{using namespace std;
        int n;
        cout<<"输入年份:";
        cin>>n;
        while(cin)
        {cout<<n<<"年后有"<<cows(n)<<"头母牛.(输入Q退出程序.)"<<endl;
        cout<<"输入年份:";
        cin>>n;}
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-8 15:05:11 | 显示全部楼层
这题用递推的...
#include<iostream>
using namespace std;
int main()
{
        int n;
        int k[60];
        int i;
        k[1]=1;
        k[2]=2;
        k[3]=3;
        k[4]=4;
        for(i=5;i<60;i++)
                k[i]=k[i-1]+k[i-3];
        while(cin>>n && n)
        {
                cout<<k[n]<<endl;
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-8 15:11:31 | 显示全部楼层
补充一下,每一年的牛的数量等于去年所有牛的数量+新生牛的数量,而新生牛的数量,就是3年前的所有牛的个数,因为三年前有一批小牛刚刚出生,那些牛在现在这年已经可以生了...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-9 12:20:28 | 显示全部楼层
斐波拉切数列变形
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-10 19:00:04 | 显示全部楼层
没有小公牛吗?  那小母牛咋生的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2014-2-3 02:53:16 | 显示全部楼层
路过学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表