一只青蛙一次可以跳上1级台阶也可以跳上2级求该青蛙跳上一个n级的台阶总共有多少种跳法?
解题思路 :每次跳1到n,那么如果是n阶台阶,一次就可能跳1~n阶(话说n=1000,青蛙腿肯定绑火箭了),乍一看很复杂,可以将前面几种情况列出来,就可以发现规律。
台阶数--------------------------------------次数
【1】 --------------------------------------1
【2】---------------------------------------2
【3】 --------------------------------------4
【4】 --------------------------------------8
【5】 --------------------------------------16
【6】 -------------------------------------- 32
【7】----------------------------------------64
由此我们可以看出n阶总的次数就是n-1次数的二倍,也就是一个斐波那切数列的问题。
用递归可以很好的解决这个问题
C++代码实现如下
#include<iostream>
using namespace std;
int fun(int n) {
if (n <= 1)
return 1;
else
{
return 2 * fun(n - 1);
}
}
void test2() {
int n,m;
cin >> n;
m = fun(n);
cout <<m<< endl;
}
int main() {
test2();
system("pause");
return 0;
}