这是大学C++课本上的一道题,算牛生牛的问题,我已经做出来了,但如何改成用递归的方法做呢?
我对递归实在是不开窍,请回帖的朋友说一下循环改成递归的一般方法,有现成的对照代码更好,谢谢。
/*4岁牛生牛的统计问题
算法描述:用一个数组存储不同年龄的牛,4岁以上的算一组可以生育。
在N年中模拟牛群按规律增长的发展过程。
*/
#include "iostream"
using namespace std;
int main()
{
int n; //年
long cow[5]; //不同年齡的牛
for(int i=2;i<5;++i)
cow[i]=0; //初始时没有2岁以上的牛
cow[1]=1; //1岁的牛只有一头
cout<<"Input N:";
cin>>n;
for(int i=2;i<=n;++i)
{
cow[4]+=cow[3]; //3岁的加到可生育组中
cow[3]=cow[2]; //2岁的长到3岁
cow[2]=cow[1]; //1岁的长到2岁
cow[1]=cow[4]; //4岁以上的生牛
}
cout<<"Sum of the cow is:"<<cow[1]+cow[2]+cow[3]+cow[4]<<endl;
cin.get();
}