看题目看了半天,最后是看输出勉强理解了题目。。。。
A是指右转,V指左转。每次转向固定走10步。
好好一个简单的问题被描述成xxxxxxxxxxxxxxxxxxxxxx
k的取值代表4个方向。
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char str[205];
int i,k,len,x,y;
while(cin>>str)
{
k=1;
cout<<"300 420 moveto"<<endl<<"310 420 lineto"<<endl;
len=strlen(str);x=310;y=420;
for(i=0;i<len;i++)
{
if(str[i]=='A')
{
if(k==1)
{
y=y-10;
k=4;
}
else if(k==2)
{
k=3;y=y+10;
}
else if(k==3)
{
k=1;x=x+10;
}
else
{
k=2;x=x-10;
}
cout<<x<<" "<<y<<" lineto"<<endl;
}
else if(str[i]=='V')
{
if(k==1)
{
k=3;y=y+10;
}
else if(k==2)
{
y=y-10;
k=4;
}
else if(k==3)
{
k=2;x=x-10;
}
else
{
k=1;x=x+10;
}
cout<<x<<" "<<y<<" lineto"<<endl;
}
}
cout<<"stroke"<<endl<<"showpage"<<endl;
}
return 0;
}