钮钴禄·胖妮妮 2021-05-15 17:25 采纳率: 80%
浏览 46

独一无二的路用递归算法怎么计算?

独一无二的路

‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

描述

从前有一只小小的机器人叫小器,小器站在一个M*N的格子地板的最左上角,很孤单,它想到处去看看,经过不懈的努力它终于可以(只能)向下或者向右移动啦,它有一个宏伟的愿望就是要穿过格子地板到达右下角的砖,所以如果小器告诉你M和N,你能不能帮它计算一下这中间可以有多少条独一无二的路径(从左上角到右下角)?‪‪‪‪‪‫‪‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

‪‪‪‪‪‫‪提示:使用函数递归调用。m*n 问题可以分解为m*(n-1)和(m-1)* n 两个问题。‪‪‪‪‪‫‪‪‪‪‪‫‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入输出示例

输入格式:两个数字(m和n)中间以逗号(,)间隔‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输出格式:数字‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬


输入输出示例1: 输入:3,3    输出:6

              示例2:输入:1,10  输出:1

我写的代码:

def way(n,m,i,j):
    if i==m or j==n:
        return 0
    elif i==m-1 and j==n-1:
        return 1
    elif i==m-1 and j!=n-1:
        return way(m,n,i,j+1)
    elif i!=m-1 and j==n-1:
        return way(m,n,i+1,j)
    else:
        return way(m,n,i+1,j)+way(m,n,i,j+1)
n=int(input())
m=int(input())
print(way(m,n,0,0))

测试结果完全不对,连输出都没有

  • 写回答

1条回答 默认 最新

  • AhcaoZhu 2023-03-23 23:01
    关注
    def way(m, n, i, j):
        if i == m or j == n:
            return 0
        elif i == m - 1 and j == n - 1:
            return 1
        elif i == m - 1 and j != n - 1:
            return way(m, n, i, j + 1)
        elif i != m - 1 and j == n - 1:
            return way(m, n, i + 1, j)
        else:
            return way(m, n, i + 1, j) + way(m, n, i, j + 1)
    
    
    m = int(input())
    n = int(input())
    print(way(m, n, 0, 0))
    

    修改处:
    1)def way(m, n, i, j): 原参数顺序搞反了。
    2)m = int(input())
    n = int(input()):到底先输入哪个?
    因为没多少时间,我没仔细研究你的算法。原题意思都没彻底搞懂。但用给出的两组数据测试,结果均对。
    其它,数据测试通过否?我就不知道了。

    Alt


    本答复由 大侠(AhcaoZhu)原创,转载请声明。
    链接: https://blog.csdn.net/Ahcao2008

    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏