hdu1033 java老是pe 30行代码进来看下
java不过转成c就正确了。不知道差别在哪里。。。
这是通过的c代码:
- C/C++ code
#include<stdio.h>#include<string.h>int main(){ char str[201]; int i,x,y,dir,t; while(~scanf("%s",str)) { x=310,y=420,dir=1,t; puts("300 420 moveto"); puts("310 420 lineto"); for (i=0;i<strlen(str);i++) { t=str[i]>'A'?1:-1; switch(dir) { case 0:x-=t*10;break; case 1:y+=t*10;break; case 2:x+=t*10;break; case 3:y-=t*10; } dir=(dir-t)%4; dir=dir>=0?dir:dir+4; printf("%d %d lineto\n",x,y); } puts("stroke\nshowpage"); } return 0;}这是pe的java代码:
- Java code
import java.util.Scanner;public class Main { public static void main(String args[]) { Scanner cin=new Scanner(System.in); while(cin.hasNext()) { int x=310,y=420,dir=1,t; String str=cin.next(); System.out.println("300 420 moveto\n310 420 lineto"); for(int i=0;i<str.length();i++) { t=str.charAt(i)>'A'? 1:-1; switch(dir) { case 0:x-=t*10;break; case 1:y+=t*10;break; case 2:x+=t*10;break; case 3:y-=t*10; } dir=(dir-t)%4; dir=dir>=0?dir:dir+4; System.out.println(x+" "+y+" lineto"); } System.out.println("stroke\nshowpage"); } }}[解决办法]
http://acm.hdu.edu.cn/showproblem.php?pid=1033