ai2790-迷宫-C语言-递归算法

算法丑陋,时间略长,还望指教。#include #include int flag;void findway(int size,char*a,char*b,int ay,int ax,int by,int bx)//在a位置寻找走向b的下一步{ int side=size-2;//真实迷宫的大小 //输入问题 if(*a=='#'||*b=='#')
摘要由CSDN通过智能技术生成

算法丑陋,时间略长,还望指教。

#include <stdio.h>
#include <stdlib.h>
int flag;
void findway(int size,char*a,char*b,int ay,int ax,int by,int bx)//在a位置寻找走向b的下一步
{
    int side=size-2;//真实迷宫的大小
    //输入问题
    if(*a=='#'||*b=='#')
        return;
    //找到的判断
    if((by==ay&&(bx==ax-1||bx==ax+1))||(bx==ax&&(by==ay+1||by==ay-1))||(by==ay&&ax==bx))
    {
        flag=1;
        return;
    }
    //必然找不到的情况
    if(*(a+1)=='#'&&*(a-1)=='#'&&*(a+size)=='#'&&*(a-size)=='#')
        return;
    //还有希望的情况
    else
    {
        *a='#';//反正是废了
        if(*(a+size)=='.')
                findway(size,a+size,b,ay+1,ax,by,bx);
        if(*(a-size)=='.')
     
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值