生小牛问题
题目描述
有一头牛,从第四年开始每一年生一头小牛,到第九年死亡,试问20年之后有多少头牛?
#include<iostream>
#include<malloc.h>
#include<vector>
using namespace std;
int main()
{
int S;
int position;
int N;
cout << "请输入养牛的年限:"<<endl;
cin >> N;
cout << N << "年之后牛的数目:"<<endl;
vector<int> a(S);
vector<int> b(S);
a[0]=b[0]=1;
position = 0;
//第二年到第N年牛的变化
for(int j=2; j<=N; j++)
{
//牛的生长
for(int i=0; i<S; i++)
{
if (a[i]==1)///a[i]等于1代表此处有牛
{
++b[i];
}
}
//生小牛
for(int i=0; i<S; i++)
{
if(b[i]>=4&&b[i]<9&&a[i]==1)
{
a[position+1]=1;
b[position+1]=1;
position++;
}
}
//小牛死亡
for(int i=0; i<S; i++)
{
if(a[i]==1&&b[i]>=9)
{
a[i]=0;
}
}
}
//计算牛的数目
int count=0;
for(int i=0; i<S; i++)
{
if(a[i]==1)
{
++count;
}
}
//输出牛的数目
cout<<"牛的数量是"<<count<<endl;
return 0;
}