C++程序题,奶牛问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 14:06:35
一只刚出生的奶牛,4年生一只奶牛,以后每一年生一只,现在给你一只刚出生的奶牛,求20年后有多少奶牛???
哪为大哥写一下代码算法啊,我是新手,详细点最好,谢谢

#include "stdafx.h"

int CalCowsNum(int iYear)
{
int iCnt = 0;
long lCowsNum = 1;
for(iCnt = 1; iCnt <=iYear; iCnt++)
{
if(iCnt >= 4)
{
if((iYear - iCnt) > 3)
{
lCowsNum += CalCowsNum(iYear - iCnt);
}else
{
lCowsNum ++;
}
}
}
return lCowsNum;
}

int main(int argc, char* argv[])
{
int iYear = 0;
printf("Please input require years!\n");
scanf("%d",&iYear);
printf("In %d years, There is %d cows.\n", iYear, CalCowsNum(iYear));
return 0;
}

晕了,用递归做了一下,运行结果真的是345

前三年都是1头 N>3时 第N年的等于N-1年加上N-3年的
OK

#include<iostream>
using namespace std;
int main ()
{cout<<"请输入要查询的年数\n";
int n, c=1;
cin>>n;
for(int i=4,a=1,b=1,temp;i<=n;i++)
{temp=a+c;
a=b;