[C/C++]跳格子游戏 - 2019校招编程刷题
参考链接
题目描述
假设你正在玩跳格子(所有格子排成一个纵列)游戏。需要 跳完n 个格子你才能抵达终点。
每次你可以跳 1 或 2 个格子。你有多少种不同的方法可以到达终点呢?
注意:给定 n 是一个正整数。
输入描述
格子数n
输出描述
跳完n个格子到达终点的方法
输入例子1:
2
输出例子1:
2
思路:
- 列举不同n值的方法数量,就可以得到推论:
- (1)n个格子的方法数量 = (n-1)个格子的方法数量+(n-2)个格子的方法数量 (n>2);
- (2)当 n <=2 时, n个格子的方法数量 = n。
n | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
方法数 | 1 | 2 | 3 | 5 | 8 | 13 |
- 使用递归方法即可完成代码。
Just show my code
代码(c++/c)
#include<iostream>
int methods(int n){
if(n<3){
return n;
}else{
return methods(n-1) + methods(n-2);
}
}
using namespace std;
int main(){
int n; // 格子数
cin >> n;
cout<<methods(n)<<endl;
return 0;
}
如果我的文章能帮你节约20秒,就请你为我的文章点个赞吧!