求助,急,在线等~迷宫问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 03:31:17
已知有一个6*6 的迷宫,请设计一种算法求从左上到右下不同行进路线的种数。如果是n*n 或者是m*n 的网格结果将是什么?

急求,答对了继续加分!!
问题再补充一下,其实就是棋盘从左上角到右下角无障碍的总路数
<br><br>
<br><br>
<br><br>
<br><br>哎~~那么高分没人回答我啊?时间不多,今晚11点前就关闭回答5-21 15:55
如果解决出来了,我在开个帖,再送200分

这个程序就是迷宫问题的求借方法:
我用 n1 代表迷宫的行数,n2代表列数,就是n1*n2的迷宫,你要6*6 或 m*n、n*n的,对应改下n1 n2就OK了!!

#include<stdio.h>
#include<stdlib.h>
#define n1 10
#define n2 10
typedef strUCt node
{
int x; //存x坐标
int y; //存Y坐标
int c; //存该点可能的下点所在的方向,1表示向右,2向上,3向左,4向右
}linkstack;

linkstack top[100];
//迷宫矩阵
int maze[n1][n2]={1,1,1,1,1,1,1,1,1,1,
0,0,0,1,0,0,0,1,0,1,
1,1,0,1,0,0,0,1,0,1,
1,0,0,0,0,1,1,0,0,1,
1,0,1,1,1,0,0,0,0,1,
1,0,0,0,1,0,0,0,0,0,
1,0,1,0,0,0,1,0,0,1,
1,0,1,1,1,0,1,1,0,1,
1,1,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,};

int i,j,k,m=0;

main()
{
//初始化top[],置所有方向数为左
for(i=0;i<n1*n2;i++)
{
top[i].c=1;
}
printf("the maze is:\n");

//打印原始迷宫矩阵
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
printf(maze[i][j]?&qu