[問題] 遞迴改非遞迴
如題
這是題目的網址
http://uva.onlinejudge.org/external/2/291.html
這是ACM的競賽題目 (一筆劃問題)
下面的程式碼是老師給的 c語言code
老師要我們把它從"遞迴"改成"非遞迴"
因為小弟才疏學淺+遞迴很少用...
我大概改了兩個版本都失敗
我遇到了兩個問題
●找不到結束的條件式//要把所有的可能找出來
●無法將map陣列重新放回1
/*
map[now][a]=1;
map[a][now]=1;
*/
不知道有沒有大大可以指點思考一下方向
//----------------------------------------
#include<stdio.h>
#include<stdlib.h>
int map[5][5]={
0,1,1,0,1,
1,0,1,0,1,
1,1,0,1,1,
0,0,1,0,1,
1,1,1,1,0};
int tryway[9]={0};
void make(int now,int go)
{
int a,b,sum=0;
tryway[go]=now;
for(a=0;a<5;a++)
for(b=0;b<5;b++) sum=sum+map[a][b];
if(sum==0)
{
for(a=0;a<9;a++) printf("%d",tryway[a]+1);
printf("\n");
}
for(a=0;a<5;a++)
if(map[now][a]==1&&a!=now)
{
map[now][a]=0;
map[a][now]=0;
make(a,go+1);
map[now][a]=1;
map[a][now]=1;
}
}
main()
{
make(0,0);
system("pause");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.13.127.188
推
04/12 01:24, , 1F
04/12 01:24, 1F
→
04/12 01:25, , 2F
04/12 01:25, 2F
→
04/12 01:29, , 3F
04/12 01:29, 3F
→
04/12 01:29, , 4F
04/12 01:29, 4F
→
04/12 01:30, , 5F
04/12 01:30, 5F
→
04/12 01:32, , 6F
04/12 01:32, 6F
→
04/12 01:33, , 7F
04/12 01:33, 7F
→
04/12 01:34, , 8F
04/12 01:34, 8F
推
04/12 04:44, , 9F
04/12 04:44, 9F
推
04/12 04:45, , 10F
04/12 04:45, 10F
→
04/12 07:39, , 11F
04/12 07:39, 11F
推
04/12 14:25, , 12F
04/12 14:25, 12F
→
04/12 14:26, , 13F
04/12 14:26, 13F
討論串 (同標題文章)