题解 | #走方格的方案数#

走方格的方案数

https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b

给出Python3版本代码:

方法一:递归

def f(n, m):
    if n == 0 or m == 0:
        return 1
    else:
        return f(n - 1, m) + f(n, m - 1)

while True:
    try:
        n, m = map(int, input().split())
        print(f(n, m))
        
    except:
        break


方法二:动态规划

while True:
    try:
        n, m = map(int, input().split())
        dp = [[0 for i in range(m + 1)] for j in range(n + 1)]
        for i in range(0, n + 1):
            for j in range(0, m + 1):
                if i == 0 and j == 0:
                    dp[i][j] = 1
                elif i == 0:
                    dp[i][j] = dp[i][j - 1]
                elif j == 0:
                    dp[i][j] = dp[i - 1][j]
                else:
                    dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
        print(dp[n][m])
        
    except:
        break


方法三:数学排列组合

while True:
    try:
        n, m = map(int, input().split())
        a, b= 1, 1
        for i in range(1, n + 1):
            a *= m + i  # 分子
            b *= i  # 分母
        print(a // b)
    except:
        break


全部评论

相关推荐

不愿透露姓名的神秘牛友
06-05 15:27
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
06-04 18:37
门头沟学院 Java
勇敢的ssr求对象:前面看的有点奔溃,看到只有你是真玩啊,忍不住笑出了声😂
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务