zoukankan      html  css  js  c++  java
  • 华为測试 坐标移动

    开发一个坐标计算工具, A表示向左移动。D表示向右移动。W表示向上移动,S表示向下移动。

    从(0,0)点開始移动,从输入字符串里面读取一些坐标。并将终于输入结果输出到输出文件中面。

    输入:

    合法坐标为A(或者D或者W或者S) + 数字(两位以内)

    坐标之间以;分隔。

    非法坐标点须要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。

    以下是一个简单的样例 如:

    A10;S20;W10;D30;X;A1A;B10A11;;A10;

     处理过程:

     起点(0,0)

     +   A10   =  (-10,0)

     +   S20   =  (-10,-20)

     +   W10  =  (-10,-10)

     +   D30  =  (20,-10)

     +   x    =  无效

     +   A1A   =  无效

     +   B10A11   =  无效

     +  一个空 不影响

     +   A10  =  (10,-10)

     结果 (10, -10)

    例子输入:A10;S20;W10;D30;X;A1A;B10A11;;A10;

    例子输出:10。-10


    #include<iostream>
    #include<string>
    using namespace std;
    
    int X=0,Y=0;
    void move(string s);
    int main()
    {
    	string str;
    	string temp;
    	cin>>str;
    	for(string::size_type index=0;index!=str.size();++index)
    	{
    		if(str[index]!=';')
    			temp.push_back(str[index]);
    		else
    		{
    			 move(temp);
    			 temp.clear();
    		}
    	}
    	cout<<X<<","<<Y<<endl;
    	return 0;
    }
    void move(string s)
    {
    	if(s.empty())
    		return;
    	if(s.size()>3 || s.size()<=1)
    		return;
    	if(!(s[0]!='A'||s[0]!='S'||s[0]!='W'||s[0]!='D'))
    		return;
    	if((s[1]>'9'||s[1]<'0')||(s[s.size()-1]>'9'||s[s.size()-1]<'0'))
    		return;
    	string ID;
    	int num=0;
    	if(s[0]=='A')
    	{
    		for(string::size_type idx=1;idx!=s.size();++idx)
    			ID.push_back(s[idx]);
    		num=atoi(ID.c_str());
    		X-=num;
    	}
    	if(s[0]=='W')
    	{
    		for(string::size_type idx=1;idx!=s.size();++idx)
    			ID.push_back(s[idx]);
    		num=atoi(ID.c_str());
    		Y+=num;
    	}
    	if(s[0]=='S')
    	{
    		for(string::size_type idx=1;idx!=s.size();++idx)
    			ID.push_back(s[idx]);
    		num=atoi(ID.c_str());
    		Y-=num;
    	}
    	if(s[0]=='D')
    	{
    		for(string::size_type idx=1;idx!=s.size();++idx)
    			ID.push_back(s[idx]);
    		num=atoi(ID.c_str());
    		X+=num;
    	}
    }



  • 相关阅读:
    vi编辑器
    数据发送的三种方式
    发送文件的三种方式
    提交表单提示框确定取消 点取消不会刷新页面
    input value="值栈的值"
    值栈
    struts2文件上传突破2M限制
    jsp取不到值栈的值
    站群--插件--点击量
    Java WebService 简单实例
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7090464.html
Copyright © 2011-2022 走看看