java递归老鼠走迷宫_递归算法求老鼠走迷宫(C语言)

/*说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,

使用1来表示老鼠的行走路径,试以程式求出由入口至出口的路径。

解法老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,

无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止,

这是递回的基本题,请直接看程式应就可以理解。*/

#include

#include

int visit(int, int);

//迷宫矩阵,2代表墙壁,0代表通道

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)

printf(“█”);

else

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)

{

//该点走过,标记为1

maze[i][j] = 1;

//走到终点,成功

if(i == endI && j == endJ)

success = 1;

//向四个方向递归调用函数visit()

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);

//该点走过,但没成功,则该点重新置为0

if(success != 1)

maze[i][j] = 0;

return success;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转 VS Code 专栏

文章目录一、企业基础篇1. 软件下载2. 中文界面3. 大佬快捷键4. 批量操作5. 大佬开发插件6. 主题配置7. 企业收费字体8. 切换大小写9. Vue代码片段10. VS Code Git 日常操作二、进阶篇一、企业基础篇 1. 软件下载 https://gblfy.blog.csdn.net/article/details/109453896 2.…

对话行癫:解密阿里云顶层设计和底层逻辑

几十个问题&#xff0c;万字长文&#xff0c;阿里云新任总裁行癫履新后首次出面与钛媒体独家深入讨论了一下阿里云对云计算未来的判断&#xff0c;深度解读未来阿里云生态战略&#xff0c;揭秘阿里技术委员会和阿里中台思想的原生思考。 阿里云智能总裁张建锋 钛媒体注&#x…

Python获取2019-nCoV疫情实时追踪数据

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源 | 三行科创责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09; 2019-nCoV新型冠状病毒引发的肺炎牵动全国人民的心&#xff0c;无数无畏的英雄儿女逆行而上奔赴前线&#xff0c;作者也于2020年2月…

idea菜单栏消失如何调整回来

有一天, 把idea中 view下面的Appearance里面的Main Menu 给反选了 导致idea顶部的菜单栏给消失了, 就像下图这样 可以双击shift键&#xff0c;输入view&#xff0c;选择action里面的View 选择Appearance里面的Main Menu 即可把菜单栏调回来.

这款神秘的移动端OCR引擎,如何做到“所见即所得”?

阿里妹导读&#xff1a;随着深度学习&#xff0c;尤其是CNN和RNN等技术的飞速发展&#xff0c;文字识别技术(OCR)近几年得到了迅速的提升。与此同时&#xff0c;在智能化终端的大趋势下&#xff0c;本地化智能识别凭借更高效快捷的体验以及高度的隐私保护和零流量消耗等优势备受…

python中的newline_python open函数newline用法

写这些文章主要是督促自己学习&#xff0c;过去两年时间&#xff0c;断断续续在学习linux、python以及机器学习方面的知识&#xff0c;东西看了很多&#xff0c;却没有实际动手操作&#xff0c;很多不明白的知识当时解决后没有记录&#xff0c;现在也忘得差不多了。为此&#x…

想要AI优先?数据优先才行

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源 | forbes编译 | shawn责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09; 开展人工智能和机器学习项目的人很早就知道&#xff0c;机器学习项目不是应用程序开发项目。机器学习项目的大部分价值在…

Cloud Toolkit 部署应用到阿里云轻量应用服务器

在之前的文章《在 Intellij IDEA 中部署 Java 应用到 阿里云 ECS》中讲解了如何将一个本地应用部署到阿里云 ECS 上去&#xff0c;有些读者反馈目前正在使用阿里云轻量应用服务器&#xff0c;咨询是否可以通过 Cloud Toolkit 插件将应用部署到这些服务器上去&#xff1f;最新版…

springboot 排除 默认的loggback 和slf4j的依赖

文章目录异常现象&#xff1a;解决方案&#xff1a;总结异常现象&#xff1a; SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/Program%20Files/JavaEclipse/repo/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.…

Node.js 应用故障排查手册 —— Node.js 性能平台使用指南

楔子 前一节中我们借助于 Chrome devtools 实现了对线上 Node.js 应用的 CPU/Memory 问题的排查定位&#xff0c;但是在实际生产实践中&#xff0c;大家会发现 Chrome devtools 更加偏向本地开发模式&#xff0c;因为显然 Chrome devtools 不会负责去生成分析问题所需要的 Dum…

for循环下标越界java_在for(int i=n;i2*n-1;i++)提示数组下标越界,为什么?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼package huffman;public class HuffmanTree {private String charset;private TriElement[]huftree;public HuffmanTree(int[]weights){this.charset"";for(int i0;ithis.charset(char)(Ai);int nweights.length;this.hu…

懂编译真的可以为所欲为|不同前端框架下的代码转换

背景 整个前端领域在这几年迅速发展&#xff0c;前端框架也在不断变化&#xff0c;各团队选择的解决方案都不太一致&#xff0c;此外像小程序这种跨端场景和以往的研发方式也不太一样。在日常开发中往往会因为投放平台的不一样需要进行重新编码。前段时间我们需要在淘宝页面上…

面试稳了!网易资深工程师揭秘运维面经!

作者 | 阿文责编 | 伍杏玲出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09;受新型冠状病毒影响&#xff0c;很多企业都推迟了复工时间或集体开始远程办公&#xff0c;而一些企业本来计划春节过后开始春季招聘&#xff0c;但是受疫情影响已做出了调整&#xff…

java.lang.NumberFormatException: null

public static void main(String[] args) {String str null;try {int a Integer.parseInt(str);} catch (NumberFormatException e) {e.printStackTrace();}}

Pick!闲鱼亿级商品库中的秒级实时选品

一、业务背景 在电商运营工作中&#xff0c;营销活动是非常重要的部分&#xff0c;对用户增长和GMV都有很大帮助。对电商运营来说&#xff0c;如何从庞大的商品库中筛选出卖家优质商品并推送给有需要的买家购买是每时每刻都要思索的问题&#xff0c;而且这个过程需要尽可能快和…

java integer 值传递_在java中String,对象,Integer(包装类型的)关于引用传递仍是值传递...

场景&#xff1a;你们都知道基本的数据类型&#xff0c;int&#xff0c;float等等这种是按值传递的。可是对于String&#xff0c;对象&#xff0c;Integer是怎样传递呢&#xff1f;java原理知识:若是参数类型是原始类型&#xff0c;那么传过来的就是这个参数的一个副本&#xf…

一文看懂Microsoft Azure的十年变迁

来源 | forbes编译 | 火火酱责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;当微软前首席软件架构师雷奥兹&#xff08;Ray Ozzie&#xff09;在2008年的PDC大会上发布Windows Azure时&#xff0c;没人能预估这个软件平台将会为该公司和整个行业…

74HC595

脚位图及说明 管脚说明&#xff1a; 14脚&#xff1a;DS&#xff08;SER&#xff09;&#xff0c;串行数据输入引脚 13脚&#xff1a;OE&#xff0c;输出使能控制脚&#xff0c;它是低电才使能输出&#xff0c;所以接GND 12脚&#xff1a;RCK&#xff08;STCP&#xff09;&…

UI2Code智能生成Flutter代码——机器生成代码

背景 在《UI2CODE--整体设计》篇中&#xff0c;我们提到UI2Code工程的整体流程。前步图片分析之后&#xff0c;我们可以得到对应的DSL布局描述。利用DSL的资讯&#xff0c;结合IntelliJ Plugin介面工具&#xff0c;面向使用者提供生成对应Flutter代码。 本篇主要介绍我们如何…

初始化java工具失败,“初始化 Java 工具”期间发生了内部错误, java.lang.NullPointerException...

今天刚打开eclipse就报了这个错误&#xff0c;我怀疑是昨晚想关电脑的时候&#xff0c;关闭eclipse太快&#xff0c;没有等待工作空间保存就关了电脑的缘故错误如图&#xff1a;(图片来自下方链接博客&#xff0c;因为忘记截图了) 我百度后按照提示&#xff0c;删除了eclipse工…