一只青蛙一次可以跳上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;
}

本文详细解析了一只青蛙跳上n级台阶的总跳法数问题,通过观察规律,将其转化为斐波那切数列问题,并使用递归算法进行解决。代码采用C++实现。
4139

被折叠的 条评论
为什么被折叠?



