HDU C++语言 母牛的故事

									母牛的故事

时间限制:2000/1000 MS(Java /其他)内存限制:65536/32768 K(Java /其他)
提交总数:148093接受提交:72869

问题描述
每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

输入值
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0 <n <55),n的含义如译文中描述
。n = 0表示输入数据的结束,不做处理。

输出量
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。

样本输入
2
4
5
0

样本输出
2
4
6

该题不难,重在审题,找规律
我画图找规律的结果是
序号:1 2 3 4 5 6 7 8
数量:1 2 3 4 6 9 13 19
横着不好看,我竖起来吧!你发现规律啦?嘿嘿
序号 母牛数量
1 1
2 2
3 3
4 4=3+1
5 6=4+2
6 9=6+3
7 13 = 9+4
8 19 = 13+6

该题很容易让我们联想到斐波那契数列
规律找到啦!那就看你如何实现啦
代码如下仅供参考!

#include<iostream>
using namespace std;
int main()
{
	int n;
	while(cin>>n&&n)
	{
		int f1=1,f2=2,f3=3;
		int i;
		if(n%3==0)//如果等于序号3,6,或者序号9
			i=n/3-1;//我只需要将循环执行0次,一次或者两次
		else
			i=n/3;//4,5需要执行1次 序号1,2不执行 ,序号7,8执行2次
		while(i--)
		{
			f1=f3+f1;
			f2=f1+f2;
			f3=f2+f3;
		}
		switch(n%3)//这个我不解释!我觉得你应该懂的!很基础的
		{
			case 0:cout<<f3<<endl;break;
			case 1:cout<<f1<<endl;break;
			case 2:cout<<f2<<endl;break;
		}
	}
	return 0;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值