[C/C++]跳格子游戏 - 2019校招编程刷题

[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;
}

经验分享 程序员 微信小程序 职场和发展