标签:clu 青蛙跳 ios 函数 out 技术分享 pre std code
题目一:求斐波拉契数列的第n项。
写出一个函数,输入n,求斐波拉契(Fibonacci)数列的第n项。斐波拉契数列定义如下:
//斐波拉契数列
#include <iostream>
using namespace std;
//递归实现
long long Fibonacci1(unsigned int n){
if(n<=1){
return n;
}
return Fibonacci1(n-1)+Fibonacci1(n-2);
}
//非递归实现
long long Fibonacci2(unsigned int n){
if(n<=1){
return n;
}
int f1 = 0,f2 = 1,sum;
for(int i=2;i<=n;i++){
sum = f1 + f2;
f1 = f2;
f2 = sum;
}
return sum;
}
int main()
{
//测试数据
for(int i=0;i<=20;i++){
cout<<Fibonacci1(i)<<" ";
}
cout<<endl;
for(int i=0;i<=20;i++){
cout<<Fibonacci2(i)<<" ";
}
cout<<endl;
return 0;
}
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
请按任意键继续. . .
题目二:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
(F(n)=F(n-1)+F(n-2))
#include <iostream>
using namespace std;
//递归实现
long long JumpStairs(unsigned int n){
if(n<=1){
return n;
}
return JumpStairs(n-1)+JumpStairs(n-2);
}
int main()
{
for(int i=1;i<=20;i++){
cout<<JumpStairs(i)<<" ";
}
cout<<endl;
return 0;
}
题目三:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
求该青蛙跳上一个n级的台阶总共有多少种跳法。(F(n)=2*F(n-1))
#include <iostream>
using namespace std;
//递归实现
long long JumpStairs(unsigned int n){
if(n<=1){
return 1;
}
return 2*JumpStairs(n-1);
}
int main()
{
for(int i=1;i<=10;i++){
cout<<JumpStairs(i)<<" ";
}
cout<<endl;
return 0;
}
标签:clu 青蛙跳 ios 函数 out 技术分享 pre std code
原文地址:https://www.cnblogs.com/hglibin/p/8975031.html