这是 fibonacci 问题。
f(n) = f(n-1) + f(n-2);
有个这个公式, 写递归函数就很容易了, 代码自己写吧。
自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
写了一个,运行OK,结果OK,你看看吧.
算法是这样的,
n=1,f(n)=2;
n=2,f(n)=3;
n=3,f(n)=4;
n>3,f(n)=f(n-1)+f(n-3);利用这个公式递归.
代码如下:
#include <iostream>
int cow (int);
int main()
{
int n,total;//n年数,total是牛的数量;
std::cout<<"Enter the years:n= (n>=1)"<<std::endl;
std::cin>>n;
if(n<1)
std::cout<<"error!"<<std::endl;
if(n>1)
{total=cow(n);
std::cout<<"total is "<<total<<std::endl;
}
return 0;
}
int cow(int n)
{
int total;
if(n==1) return 2;
if(n==2) return 3;
if(n==3) return 4;
if(n==4) return 6;
if(n>4)
{
total=cow(n-1)+cow(n-3);//开始递归;
return total;
}
}