POJ1573Robot Motion

http://poj.org/problem?id=1573

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<cstring>
 4 
 5 int main()
 6 {
 7     int step[15][15],n,m,x,y,s;
 8     int visit[15][15];
 9     char map[15][15];
10     while(scanf("%d%d%d",&n,&m,&y),n||m||y)
11     {
12         /*for(int i=1;i<=n;i++)
13         {
14             scanf("%s",map[i]+1);
15         }*/
16        for(int i = 1 ; i <= n ; i ++)
17         {
18             getchar();//吃掉换行
19             for(int j = 1 ; j <= m ; j++)
20             {
21                 scanf("%c",&map[i][j]) ;
22             }
23         }
24         memset(visit,0,sizeof(visit));
25         s=0,x=1,visit[x][y]=1,step[x][y]=s;
26         while(1)
27         {
28             switch(map[x][y])
29             {
30                 case 'N': x--;break;
31                 case 'S': x++;break;
32                 case 'E': y++;break;
33                 case 'W': y--;break;
34             }
35             s++;
36             if(visit[x][y])
37             {
38                 printf("%d step(s) before a loop of %d step(s)
",step[x][y], s-step[x][y]);
39                 break;
40             }
41             visit[x][y]=1;
42             step[x][y]=s;
43             if(x<1 || y<1 || x>n || y>m)
44             {
45                 printf("%d step(s) to exit
",s);
46                 break;
47             }
48         }
49     }
50     return 0;
51 }
View Code

呜啦啦,又是模拟题,这个题又被虐了好长时间,不过倒是挺好做的感觉

原文地址:https://www.cnblogs.com/luyingfeng/p/3242689.html