大一python基础编程题当n至少为多少时,1×2×3×……×n将超过1000000

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)现茬考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径
网格中的障碍物和空位置分别用 1 和 0 来表示。
说明:m 和 n 的值均不超过 100
3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:

本题采用动态规划的思想故用dp(i,j)来表示从坐标(0,0)到(i,j)的路径总數。ob(i,j)表示坐标(i,j)是否可行如果(i,j)处有障碍物则ob(i,j)=1(不可行),无障碍物时ob(i,j)=0(可行)。因为机器人每次只能向下或者向右移动一步故最後的状态dp(i,j)的取得是根据上一步dp(i-1,j)和dp(i,j-1)的和而来,故有两种情况: 1)(i,j)处有障碍则怎么也走不到目的地,所以dp(i,j)=0 // 初始化赋值(第一列)因为每个元素只能从上到小得到当无障碍物时赋值为1 // 初始化赋值(第一行)因为每个元素只能从左到右得到,当无障碍物时赋值为1 // 循环遍历整个数組从i=1,j=1处开始因为二维数组的第一行和第一列的元素已经被赋值

人生若只如初见,何事秋风悲画扇
等闲变却故人心,却道故人心易變

小白寄语:学如逆水行舟,不进则退

}
分类专栏: 文章标签:

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

进程已结束,退出代码 0
}

我要回帖

更多关于 大一python基础编程题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信