hdu1033 java老是pe 30行代码进来看下
java不过转成c就正确了。不知道差别在哪里。。。
这是通过的c代码:
#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;
}
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");
}
}
}