您的位置:首页 > 其它

HDOJ 1035 Robot Motion

2017-12-07 17:51 309 查看
HDACM 1035

模拟

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
int m = sc.nextInt();
int s = sc.nextInt();
if (n==0&&m==0&&s==0) {
break;
}
String strs[] = new String
;
for (int i = 0; i < strs.length; i++) {
strs[i] = sc.next();
}
int step[][] = new int
[m];
boolean isExit = true;
int x = s-1;
int y = 0;
int i = 1;
step[y][x] = i;
while(true){
char c = strs[y].charAt(x);
if (c=='W') {
x--;
}
if (c=='E') {
x++;
}
if (c=='N') {
y--;
}
if (c=='S') {
y++;
}
if (x<0||x>=m||y<0||y>=n) {//走出去了
break;
}
if (step[y][x]!=0) {//开始循环
isExit = false;
break;
}
i++;
step[y][x]= i;
}
if (isExit) {
System.out.println(i+" step(s) to exit");
}else{
System.out.println(step[y][x]-1+" step(s) before a loop of "+(i-step[y][x]+1)+" step(s)");
}
}
sc.close();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: