C++经典算法题-老鼠走迷官(一)
5.Algorithm Gossip: 老鼠走迷官(一)
说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表
示老鼠的行走路径,试以程式求出由入口至出口的路径。
解法
老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前
进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止,这是递回的基本题,请直接看程式应就可以理解。
#include <stdio.h>
#include <stdlib.h>int visit(int, int);int maze[7][7] = {{2, 2, 2, 2, 2, 2, 2},{2, 0, 0, 0, 0, 0, 2},{2, 0, 2, 0, 2, 0, 2},{2, 0, 0, 2, 0, 2, 2},{2, 2, 0, 2, 0, 2, 2},{2, 0, 0, 0, 0, 0, 2},{2, 2, 2, 2, 2, 2, 2}};int startI = 1, startJ = 1; // 入口int endI = 5, endJ = 5; // 出口int success = 0;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)elseprintf("█");printf(" ");printf("\n");}if(visit(startI, startJ) == 0)printf("\n没有找到出口!\n"); else {printf("\n显示路径:\n"); for(i = 0; i < 7; i++) {for(j = 0; j < 7; j++) { if(maze[i][j] == 2)printf("█");else if(maze[i][j] == 1) printf("◇");else}printf(" ");printf("\n");}}return 0;}int visit(int i, int j) { maze[i][j] = 1;if(i == endI && j == endJ) success = 1;if(success != 1 && maze[i][j+1] == 0) visit(i, j+1); if(success != 1 && maze[i+1][j] == 0) visit(i+1, j); if(success != 1 && maze[i][j-1] == 0) visit(i, j-1); if(success != 1 && maze[i-1][j] == 0) visit(i-1, j);if(success != 1)maze[i][j] = 0; return success;}
C++经典算法题-老鼠走迷官(一)相关推荐
- C++经典算法题-老鼠走迷官(二)
6.Algorithm Gossip: 老鼠走迷官(二) 说明 由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径呢? 解法 求所有路径看起来复杂但其实更简单,只要在老鼠走至出 ...
- 经典算法大全51例——56.老鼠走迷官
经典算法大全51例--5&6.老鼠走迷官 算法目录合集 地址 说明 题目以及个人题解 说明 题目 原理分析 问题① 原理 代码实现--Java 问题② 原理 代码实现--Java 相关题目其他 ...
- 老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)
C语言经典算法 - 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下 ...
- 【经典算法】老鼠走迷宫问题
老鼠走迷宫问题及其多个变种 一.说明 老鼠走迷宫问题的递归实现,是对递归思想的一种应用. 二.问题描述 给定一个二维数组,数组中2表示墙壁,0表示通路,由此数组可展示为一个迷宫图.给定入口位置和出口位 ...
- 经典算法五--老鼠走迷宫
说明: 老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1表示老鼠行走的路径,试以程式求出由入口至出口的路径. 解法: 老鼠的走法有上,下,左,右四个方向,在每前进一格之后就选 ...
- c语言老鼠走迷宫课程设计,C语言算法之老鼠走迷宫
1.Algorithm Gossip: 老鼠走迷官(一)说明:老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法: ...
- 经典算法题每日演练——第六题 协同推荐SlopeOne 算法
原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...
- 经典算法题每日演练——第二十二题 奇偶排序
原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...
- 经典算法题每日演练——第十九题 双端队列
经典算法题每日演练--第十九题 双端队列 原文:经典算法题每日演练--第十九题 双端队列 话说大学的时候老师说妹子比工作重要~,工作可以再换,妹子这个...所以...这两个月也就一直忙着Fall in ...
最新文章
- append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域
- 十进制 转换为 二进制
- 1003 Emergency (25 分)【Dijastra与DFS解法】
- 穷人靠力,富人借力!看完你将明白一切!
- Flink中的状态管理
- java正则表达式tab_Linux下如何使用grep命令查找带有tab(退格)的字符
- 江苏大学c语言程序设计,江苏大学201级C语言课程设计要求及题目.doc
- 前端---二级级联下拉列表的实现
- 物联网卡在智慧农业的作用有哪些
- 音频频谱特效 jaVa_基于Matlab dsp工具箱 的实时音频采集及频谱显示
- oracle单行函数 之 字符函数
- 【Xamarin挖墙脚系列:mac 终端 常用命令+Mac OS X的快捷键+beamoff 】
- 小米进军欧洲智能手机市场:一面是狂欢,一面是考验...
- python 语音处理工具包AudioSegment的基本使用
- html字体换成白色,css怎么把字体颜色改为白色
- Mac版3D动画建模渲染工具C4D R26
- Apahce虚拟主机与伪静态
- 4、关于step的设置
- [OHIF-Viewers]医疗数字阅片-医学影像-Cornerstone
- KD树详解及KD树最近邻算法