描述
请计算n*m的棋盘格子(n为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。
注:沿棋盘格之间的边缘线行走
数据范围: 1≤𝑛,𝑚≤8 1≤n,m≤8
输入描述:
输入两个正整数n和m,用空格隔开。(1≤n,m≤8)
输出描述:
输出一行结果
示例1
输入:
2 2
输出:
6
本题采用递归的思想,由于只能向右或向左,设置类似坐标的x和y,分别得到其能向下或向右搜索的数量,最后递归累加就可以得到答案。
n,m=map(int,input().split())
def search(n,m,x,y):
if x==n and y==m:
return 1
elif x<n and y==m:
return search(n,m,x+1,y)
elif x==n and y<m:
return search(n,m,x,y+1)
elif x<n and y<m:
return search(n,m,x+1,y)+search(n,m,x,y+1)
print(search(n,m,0,0))