请编写一个函数(允许增加子函数),计算n x m的棋
盘格子(n为横向的格子数,m为竖向的格子数)沿着
各自边缘线从左上角走到右下角,总共有多少种走法,
要求不能走回头路,即:只能往右和往下走,不能往左
和往上走。
输入描述:
输入两个正整数
输出描述:
返回结果
输入例子:
2
2
输出例子:
6
class Node(object):
def __init__(self, x, y):
self.x = x
self.y = y
def bfs(n,m):
if n<=0 or m <= 0:
return
queue = []
step = [[0,1],[1,0]]
count = 0
queue.append(new Node(0,0))
while queue:
local = queue.pop()
count += 1
for i in range(len(step)):
next = Node(local.x+step[i][0], local.y + step[i][1])
if 0 <= next.x < n and 0 <= next.y < m:
queue.append(next)
print count + 1
while True:
try:
n, m = raw_input().split()
bfs(n,m)
except:
break
def num(n,m):
if n<=0 or m <= 0:
return
if n==1:
return m+1
elif m == 1:
return n+1
else:
return num(n-1,m) + num(n, m-1)