当前位置: 首页> 游戏> 评测 > 学编程能干什么_制作个人网页费用_东莞百度seo推广公司_申请网站怎么申请

学编程能干什么_制作个人网页费用_东莞百度seo推广公司_申请网站怎么申请

时间:2025/7/14 1:00:49来源:https://blog.csdn.net/weixin_65550131/article/details/147028102 浏览次数:0次
学编程能干什么_制作个人网页费用_东莞百度seo推广公司_申请网站怎么申请

深度优先搜索题:找到最长的路径,计算这样的路径有多少条(使用回溯

分析题意可以得知,每次向前后左右走一步,直至走完16步就算一条走通路径。要求条件是不能超出4*4的范围,不能重复之前的路径。

①控制条件,若下一步已经被占有则返回

②控制条件,若下一步越界则返回

③控制条件,若下一步已到达末尾则返回,并且统计值+1

④若不在上述三个条件中则继续进行下一个点前后左右的试探,进去时需要将标记值设为1,出来后标记值为0

⑤主函数调用,将16个点每个都作为起点,调用回溯函数算出全部统计值

⑥输出统计值

代码如下👇

	static int[] dx= {0,1,0,-1};static int[] dy= {1,0,-1,0};static int[][] arr=new int[4][4];static int count=0;public static void main(String[] args) {for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {snack(i, j, 0);}}System.out.println(count);}//玩具蛇public static void snack(int x,int y,int len) {if (x>=4 || x<0 || y>=4 || y<0) {//先看有没有越界return;}if (arr[x][y]==1) {//下一步已经被占有return;}if (len>=15) {//走到结尾count ++;return;}for (int i = 0; i < 4; i++) {arr[x][y]=1;snack(x+dx[i], y+dy[i], len+1);arr[x][y]=0;//回溯精精髓}}

运行结果

关键字:学编程能干什么_制作个人网页费用_东莞百度seo推广公司_申请网站怎么申请

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: