zoukankan      html  css  js  c++  java
  • 题目:找试场

    题目描述

    小王同学在坐标系的(0,0)处,但是他找不到考试的试场,于是一边走路一边问路,每个被问路的人会告诉他一个指令(包括走路或转弯),现在请编一个程序,显示他每次走路后的坐标(转弯后不必显示坐标)。

    数据范围
    对于50 %的数据,0<n <=20,对于100 %的数据,0<n <=500, 所有数据都在longint范围内。

    输入格式

    第一行一个数n,表示有n个指令,接下来n行每行一个指令,每个指令是“left” 或“right”或数字。

    输出格式

    (有m个走路的指令)共m行,每一行一个坐标,表示走完后的坐标。如果只是原地转弯,从来不走动,则输出“(0,0)”.

    题解:———————————————————————————————————————————————————

    第一次做这样的题,看了别人的题解才明白,设定一个指示方向的变量,但向左转时step+3,向右转时step+1,向右转三次相当于向左转一次。

    代码实现:

    #include<iostream>
    using namespace std;
    
    int main()
    {
       int x,y,i,n;int b[501][2];
    
       cin>>n;
       
       x=y=0;
       memset(b,-1,sizeof(b));
       
       int step=0; 
       for(i=1;i<=n;i++)
       {
        char a[30];
        cin>>a;
        
        if(0<=a[0]-'0'&&a[0]-'0'<=9)    
         {  
          int k,j=0,l=1;   
          k=strlen(a);
          while(k>0)
          {
           j=j+(a[k-1]-'0')*l;
           l=l*10;
           k--;
                     }       
          switch(step){
                       case 0:y=y+j;break;
                       case 1:x=x+j;break;
                       case 2:y=y-j;break;
                       case 3:x=x-j;break;
                       }              
          b[i][0]=x;b[i][1]=y;             
          }                                           
        else if(a[0]=='r') {step=step+1;step=step%4;}
        else if(a[0]=='l') {step=step+3;step=step%4;}
                        }
        bool p=0;
        
        for(i=1;i<=n;i++)
        if((b[i][0]!=0||b[i][1]!=0)&&b[i][0]!=-1)
        p=1;
        
        if(p==0) {cout<<"(0,0)"<<endl;return 0;}
        
        for(i=1;i<=n;i++)
        if(b[i][0]!=-1)
        cout<<"("<<b[i][0]<<","<<b[i][1]<<")"<<endl;
         
        return 0;
        
        }
  • 相关阅读:
    信息探测
    Hdu 1262 寻找素数对
    Hdu 1263 水果
    Hdu 1261字串数
    Hdu 1253 胜利大逃亡
    Hdu 1237简单计算器
    Hdu 1235 统计同成绩学生人数
    Hdu 1236 排名
    Hdu 1233 还是畅通工程
    Hdu 1234 开门人和关门人
  • 原文地址:https://www.cnblogs.com/noip/p/2305317.html
Copyright © 2011-2022 走看看