问题
一只刚出生的奶牛,4年生1只奶牛,以后每一年生1只。现在给你一只刚出生的奶牛,求20年后有多少奶牛。
作者实现的时候应用了规律,而我这里实现的时候,绕开规律。从一个点子入手
假设第一年一头奶牛,在N年后有多少个直系的奶牛
这还不容易,4年后,每年生一头奶牛,N-3
那么4年后的第一头奶牛,N年后有多少了直系的奶牛
这还不容易,4年后,每年生一头奶牛,N-6
int CaculCowNum(int nYear){
//数组保存从第一年开始到150年,每年增加的奶牛
int nLocalYearCow[150]={0};
//初始化奶牛为1头
nLocalYearCow[1]=1;
int tmp=0;
int nSumCow=0;
//遍历一次,每头奶牛在以后的某年生产多少头牛
for(int i=1;i<nYear+1;i++)
{
tmp=nLocalYearCow[i];
for(int j=i+3;j<nYear+1;j++)
{
nLocalYearCow[j]+=tmp;
}
}
//将每年生产的奶牛相加
for(int i=1;i<nYear+1;i&