| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2188 人关注过本帖
标题:虽然结果出来了,但是为什么有很多是重复的?
只看楼主 加入收藏
hunterevil
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-1-12
结帖率:66.67%
  问题点数:0  回复次数:2   
虽然结果出来了,但是为什么有很多是重复的?
程序代码:
#include"iostream"
using namespace std;
#define size 3
int maze[size+2][size+2];
void creat(){                                             //创建迷宫
int i,j;
for(i=0;i<=size+1;i++)
    for(j=0;j<=size+1;j++)
        maze[i][j]=0;
i=0;
for(j=0;j<=size+1;j++)
        maze[i][j]=1;
i=size+1;
for(j=0;j<=size+1;j++)
    maze[i][j]=1;
j=0;
for(i=0;i<=size+1;i++)
    maze[i][j]=1;
j=size+1;
for(i=0;i<=size+1;i++)
    maze[i][j]=1;
}void set_m(){                               //给迷宫设置障碍物,1表示有障碍物,0表示没有
    maze[1][2] = 1;
    maze[3][3]=1;
}
void show(){
int i,j;
for(i=0;i<=size+1;i++){                          //输出迷宫
    for(j=0;j<=size+1;j++){
        if(maze[i][j]==-1)cout<<"*"<<"  ";
       if(maze[i][j]==1)cout<<"#"<<"  ";
    if(maze[i][j]==0)cout<<"   ";

}
cout<<endl;
}
}
void search_m(int i,int j){                     //查找路径,出口点在2,3.入口点在1,1
if(i==2&&j==3){maze[i][j]=-1;int static k=1;cout<<""<<k<<"种:\n";show();k++;return;}
   if(maze[i][j]==-1||maze[i][j]==1)return;       //maze[i][j]表示改点曾经走过。
            maze[i][j]=-1;
           search_m(i-1,j);
           search_m(i,j+1);
           search_m(i+1,j);
           search_m(i,j+1);
            maze[i][j]=0;
}
int main(){
creat();
set_m();
show();
search_m(1,1);
return 0;
}




附件: 您没有浏览附件的权限,请 登录注册
2016-03-22 22:44
hunterevil
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2016-1-12
  得分:0 
本来答案应该是两种,但是为什么结果是8种,其中不一样的就两种,其余的全是重复的。
2016-03-22 22:46
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:城市猎人
威 望:9
帖 子:1062
专家分:5099
注 册:2015-10-27
  得分:0 
对于这种问题建议你拿到C++板块去问。。那里看得懂你代码的人更多写。数据结构预算法这个板块不适合就具体代码进行探讨。大家使用的语言可能都是不一样的。。。比如我就只懂C。。

φ(゜▽゜*)♪
2016-04-04 21:39







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029683 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved