【字符串处理】 vijos 1756 数字反转

 

背景

noip2011 NO.1

描述

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

格式

输入格式

输入共1 行,一个整数N。

输出格式

输出共1 行,一个整数,表示反转后的新数。

样例1

样例输入1[复制]

123 

样例输出1[复制]

321 

样例2

样例输入2[复制]

-380 

样例输出2[复制]

-83 

限制

1s

提示

【数据范围】
-1,000,000,000 ≤ N ≤ 1,000,000,000 。

来源

noip 2011

不知道c++有个函数叫reverse()笑

还是水哦

# include<string>

# include<iostream>

# include<cstdio>

# include<cstring>

# include<algorithm>

using namespace std;

string s;

int ok=1,p;

int main(){

    cin>>s;

    if(s[0]=='-'){ok=0;reverse (++s.begin(),s.end ());}

    else reverse (s.begin(),s.end ());

    if(ok){for(int i=0;i<s.size();i++)if(s[i]!='0'){p=i;break;}for(int i=p;i<s.size();i++)cout<<s[i];}

    else {cout<<s[0];for(int i=1;i<s.size();i++)if(s[i]!='0'){p=i;break;}for(int i=p;i<s.size();i++)cout<<s[i];}

}

 

你可能感兴趣的:(字符串处理)