题目描述
有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。
输入描述:
输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。
输出描述:
输出包括一行,为走法的数目。
解法一:dfs
def dfs(i, j):
global count, x, y
if (((i == y) and (j == x))):
count += 1
return
if (i + 1 <= y):
dfs(i + 1, j)
if (j + 1 <= x):
dfs(i, j + 1)
x, y = raw_input().split(' ')
x = int(x) + 1; y = int(y) + 1
count = 0
dfs(1, 1)
print(count)
解法二:动态规划
x,y
=
map
(
int
,
raw_input
().split())
d
=
[[
0
for
j
in
range
(y
+
1
)]
for
i
in
range
(x
+
1
)]
# print d[1][2]
for
j
in
range
(y
+
1
):
d[
0
][j]
=
1
for
i
in
range
(x
+
1
):
for
j
in
range
(y
+
1
):
d[i][j]
=
d[i
-
1
][j]
+
d[i][j
-
1
]
print
d[x][y]