6.Algorithm Gossip: 老鼠走迷官(二)

说明

由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径呢?

解法

求所有路径看起来复杂但其实更简单,只要在老鼠走至出口时显示经过的路径,然后退
回上一格重新选择下一个位置继续递回就可以了,比求出单一路径还简单,我们的程式只要作一点修改就可以了。

#include <stdio.h>
#include <stdlib.h>void visit(int, int);int maze[9][9] = {{2, 2, 2, 2, 2, 2, 2, 2, 2},{2, 0, 0, 0, 0, 0, 0, 0, 2},{2, 0, 2, 2, 0, 2, 2, 0, 2},{2, 0, 2, 0, 0, 2, 0, 0, 2},{2, 0, 2, 0, 2, 0, 2, 0, 2},{2, 0, 0, 0, 0, 0, 2, 0, 2},{2, 2, 0, 2, 2, 0, 2, 2, 2},{2, 0, 0, 0, 0, 0, 0, 0, 2},{2, 2, 2, 2, 2, 2, 2, 2, 2}};int startI = 1, startJ = 1; // 入口int endI = 7, endJ = 7;  // 出口int main(void) { int i, j;printf("显示迷宫:\n"); for(i = 0; i < 7; i++) {for(j = 0; j < 7; j++) if(maze[i][j] == 2)printf("█");elseprintf("  ");printf("\n");}visit(startI, startJ);return 0;}void visit(int i, int j) { int m, n;maze[i][j] = 1;if(i == endI && j == endJ) { printf("\n显示路径:\n"); for(m = 0; m < 9; m++) {for(n = 0; n < 9; n++) if(maze[m][n] == 2)printf("█");else if(maze[m][n] == 1) printf("◇");elseprintf(" ");printf("\n");}}if(maze[i][j+1] == 0) visit(i, j+1);if(maze[i+1][j] == 0) visit(i+1, j);if(maze[i][j-1] == 0) visit(i, j-1);if(maze[i-1][j] == 0) visit(i-1, j);maze[i][j] = 0;}

C++经典算法题-老鼠走迷官(二)相关推荐

  1. C++经典算法题-老鼠走迷官(一)

    5.Algorithm Gossip: 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法 ...

  2. 经典算法大全51例——56.老鼠走迷官

    经典算法大全51例--5&6.老鼠走迷官 算法目录合集 地址 说明 题目以及个人题解 说明 题目 原理分析 问题① 原理 代码实现--Java 问题② 原理 代码实现--Java 相关题目其他 ...

  3. 老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)

    C语言经典算法 - 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下 ...

  4. 经典算法题每日演练——第二十二题 奇偶排序

    原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...

  5. 【经典算法】老鼠走迷宫问题

    老鼠走迷宫问题及其多个变种 一.说明 老鼠走迷宫问题的递归实现,是对递归思想的一种应用. 二.问题描述 给定一个二维数组,数组中2表示墙壁,0表示通路,由此数组可展示为一个迷宫图.给定入口位置和出口位 ...

  6. 经典算法五--老鼠走迷宫

    说明: 老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1表示老鼠行走的路径,试以程式求出由入口至出口的路径. 解法: 老鼠的走法有上,下,左,右四个方向,在每前进一格之后就选 ...

  7. c语言老鼠走迷宫课程设计,C语言算法之老鼠走迷宫

    1.Algorithm Gossip: 老鼠走迷官(一)说明:老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法: ...

  8. 经典算法题每日演练——第六题 协同推荐SlopeOne 算法

    原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...

  9. 经典算法题每日演练——第十九题 双端队列

    经典算法题每日演练--第十九题 双端队列 原文:经典算法题每日演练--第十九题 双端队列 话说大学的时候老师说妹子比工作重要~,工作可以再换,妹子这个...所以...这两个月也就一直忙着Fall in ...

最新文章

  1. Win10 TensorFlow(gpu)安装详解
  2. python中str的索引、切片
  3. Jlink-V9详细制作材料(带串口+SW)----小白的福音
  4. 机器学习中为什么需要梯度下降_梯度下降直觉 - 机器是如何学习的
  5. 【转载】移植FFMpeg到VC环境心得
  6. less学习-带参数混合
  7. 转:关于数据库压缩技术的Survey
  8. mui实现分享功能_继MIUI之后,华为EMUI更新,深度实现万物互联
  9. 《『若水新闻』客户端开发教程》——06.设计新闻内容UI
  10. Android Message和obtainMessage的区别
  11. CVPR学习(三):CVPR2019-各个方向
  12. [转]Windows 下 Apache Virtual hosts 简单配置
  13. 切换无线网卡失败服务器提示,Win7系统切换usb无线网卡为AP模式时提示ICS启动失败如何解决...
  14. Minidump文件分析
  15. 将路由器作为AP组建局域网的方法
  16. jQuery+PHP+Mysql在线拍照和在线浏览照片
  17. 费马,solovay-staassen,米勒拉宾素性检验方法python实现与比较
  18. Cura参数设置-避免支撑拆除带来的困难
  19. HTML实现简单的网页设计。
  20. 自编码器(autoencoder)了解一下

热门文章

  1. 摇摆直升飞机 第一天
  2. Spring service本类中方法调用另一个方法事务不生效问题
  3. 计算机专业买小新pro13锐龙怎么样,Soomal作品 - Lenovo 联想 小新Pro13 2020锐龙版笔记本电脑屏幕测评 [Soomal]...
  4. java计算机毕业设计人事管理系统源代码+数据库+系统+lw文档
  5. 程序员高铁上撸代码被拍,头发这么多,肯定不是程序员
  6. 【十一本常用算法书推荐】
  7. HTML基础--表单元素知识
  8. 虚拟磁盘vhd安装linux,安装VHD的友帮拓系统
  9. Centos6配置在线yarm源 Centos6 网易源阿里源都失效用不了的解决方法
  10. 偷偷学习qt 样式,然后写出惊艳所有人的界面