题意还真的不好懂,摸索数据就出来了,注意顺时针和逆时针时候的方向变化

/*
 * Author:lonelycatcher
 * problem:hdu 1033
 * Type:水题
 */
#include<string.h>
#include<iostream>
#include<string>
#include<stdio.h>
#include<cstdlib>
using namespace std;
string command;
int main()
{
 while(cin>>command)
 {
  printf("300 420 moveto\n");
  printf("310 420 lineto\n");
  int len=command.length();
  int dirx=1;
  int diry=0;
  int x=310,y=420;
  for(int i=0;i<len;i++)
  {
   if(command[i]=='A')
   {
    if(dirx==1&&diry==0)
    {
     y-=10;
     dirx=0;diry=-1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==-1&&diry==0)
    {
     y+=10;
     dirx=0;diry=1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==1 )
    {
     x+=10;
     dirx=1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==-1)
    {
     x-=10;
     dirx=-1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
   }
   else
   {
    if(dirx==1&&diry==0)
    {
     y+=10;
     dirx=0;diry=1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==-1&&diry==0)
    {
     y-=10;
     dirx=0;diry=-1;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==1 )
    {
     x-=10;
     dirx=-1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
    else if(dirx==0 && diry==-1)
    {
     x+=10;
     dirx=1;diry=0;
     printf("%d %d lineto\n",x,y);
     continue;
    }
   }
  }
  printf("stroke\nshowpage\n");
 }
 return 0;
}

相关文章:

  • 2021-05-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-04
  • 2022-12-23
  • 2021-06-13
  • 2022-01-05
  • 2021-12-06
  • 2021-10-27
  • 2022-01-30
相关资源
相似解决方案