http://acm.hdu.edu.cn/showproblem.php?pid=1033
刚开始看不懂题目,后来才发现原来是一道模拟题。把两个数看成【x,y】,每次就是A位右转,V为左转,和poj上一道题很像。
#include<iostream>
using namespace std;
int main()
{
char str[210];
while(scanf("%s",&str)!=EOF)
{
int i=0;
int p=1;
int x=310;
int y=420;
printf("300 420 moveto/n310 420 lineto/n");
while(str[i]!='/0')
{
switch(p)
{
case 1 : //x轴正方向
{
if(str[i]=='A')
{y-=10; p=-2;}
else if(str[i]=='V')
{y+=10; p=2;}
printf("%d %d lineto/n",x,y);
break;
}
case -1 : //x轴负方向
{
if(str[i]=='A')
{y+=10; p=2;}
else if(str[i]=='V')
{y-=10; p=-2;}
printf("%d %d lineto/n",x,y);
break;
}
case 2 : //y轴正方向
{
if(str[i]=='A')
{x+=10; p=1;}
else if(str[i]=='V')
{x-=10; p=-1;}
printf("%d %d lineto/n",x,y);
break;
}
case -2 : //y轴负方向
{
if(str[i]=='A')
{x-=10; p=-1;}
else if(str[i]=='V')
{x+=10; p=1;}
printf("%d %d lineto/n",x,y);
break;
}
}
i++;
}
printf("stroke/nshowpage/n");
}
return 0;
}
927

被折叠的 条评论
为什么被折叠?



