首页 > 代码库 > 【字符串处理】 vijos 1756 数字反转

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

标签:模拟NOIP普及组2011
 

背景

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];}}

 

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