目录
题目
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
解题思路
只有四岁以上的母牛会生下新的小母牛,所以我们可以创造四个变量分别保存1,2,3,可以生育的母牛,只要在每次循环在1岁母牛的容器中加上可生育母牛的数量即可。
核心代码
//big 4岁母牛 three 3岁母牛 two 2岁母牛 one 1岁母牛
for(int i = 1;i < n;i++)
{
big += three; //3岁的牛变成了可以生育的母牛
three = two; //2岁长大成3岁母牛
two = one; //1岁长大成2岁母牛
one = big; //可生育母牛生下了big头一岁小母牛
}
需要注意的是开始时候就是第一年,所以循环中的i的初始量是1。
完整代码
#include<iostream>
using namespace std;
int main()
{
int big,one,two,three;
int n;
while(cin >> n,n != 0)
{
big = 1;
one = 0;
two = 0;
three = 0;
//big 4岁母牛 three 3岁母牛 two 2岁母牛 one 1岁母牛
for(int i = 1;i < n;i++)
{
big += three; //3岁的牛变成了可以生育的母牛
three = two; //2岁长大成3岁母牛
two = one; //1岁长大成2岁母牛
one = big; //可生育母牛生下了big头一岁小母牛
}
cout << big + three + two + one << endl;
}
return 0;
}
测试
通过