蓝桥杯(B组)-每日一题

题目:

思路:

首先将所有牛分类
1.a第一头母牛-每年年初生一头小母牛

2.不能生小牛的牛:
b1-一岁小母牛
b2-二岁小母牛
b3-三岁小母牛
 

超过4岁就会再生一头小牛

因此计算每年生的小牛是第一头生的a再加上4岁后的生的 


代码实现:

#include<iostream>
using namespace std; 
int main()
{
    int a=1,b1=0,b2=0,b3=0,year[55];
//初始化如果第一头每年生一头的牛数量是1
//1岁的小牛
//2岁的小牛
//3岁的小牛都初始化为1

//第0年没有牛也初始化为0
    year[0]=0;
    year[1]=1;
//定义年数组来存放每一年有的牛数 

//进入循环从第2年到第55年
    for(int i=2;i<55;i++)
    {
        a=a+b3;
//每年的新生牛等于原先可以生的+去年3岁的
        year[i]=year[i-1]+a;
//去年的+新的
        b3=b2;//2岁的变成3岁 
        b2=b1;//1岁的变成2岁 
        b1=a;//新出生的   
     } 
     while(1)
//一直进行循环
{
    int p;//输入年数p
    cin>>p;
    if(p!=0)//如果不为0
    {
        cout<<year[p]<<endl;//将year数组中存储的年数打印
     } 
     else//如果为0的话直接结束
     break;
}
    return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值