|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
已经一个递归函数:
f(1)=f(2)=1;
f(n)=f(n-1)+f(n-2)!
求f(30)=?
一般的人都是这样编写的(我也是这样编写的)
#include <iostream>
using namespace std;
int fun(int );
int main()
{
cout<<fun(30);
return 0;
}
int fun(int n)
{
if(n<=2)
return 1;
else
return fun(n-1)+fun(n-2);
}
今天看到数学系的一个学生是这样完成的:
#include <iostream>
using namespace std;
int main()
{
int a=1,b=1,c;
for(int i=0;i<10;++i) //a.b.c.a.b.c.a.b.c.a.b.c.....看成一个数列!
{
c=a+b;
a=b+c;
b=c+a;
}
cout<<c<<endl;
return 0;
}
很佩服数学系的人!
- #include <iostream>
- using namespace std;
- int main()
- {
- cout<<fun(29)<<endl;
- return 0;
- }
- int fun(int n)
- {
- int a=1,b=1,c=0;
- for(int i=0;i<n/3;++i)
- {
- c=a+b;
- a=b+c;
- b=c+a;
- }
- if(n%3==0) return c;
- if(n%3==1) return a;
- if(n%3==2) return b;
- }
复制代码
|
|