走方格的方案数
题目来源
牛客网:走方格的方案数
题目描述
请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。
注:沿棋盘格之间的边缘线行走
数据范围: 1≤n,m≤8
输入描述
输入两个正整数n和m,用空格隔开。(1≤n,m≤8)
输出描述
输出一行结果
示例1
输入
2 2
输出
6
思路分析
- 用递归的思想进行分析,走到某一个格子的方法等于走到这个点的前面两个点的方式相加之和,如图
代码展示
#include <iostream>
#include <vector>
using namespace std;
int Step(int x,int y)
{
//x为0或者y为0表示走到表格的边界,此时只有一种走法
if(x==0||y==0)
{
return 1;
}
return(Step(x-1,y)+Step(x,y-1));
}
int main() {
int m,n;
while(cin>>m>>n)
{
cout<<Step(n,m)<<endl;
}
}