P1307 [NOIP2011 普及组] 数字反转
这个题注意这样的数据:203040506000,这种中间有0存在的。
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
一个整数 NNN
输出格式
一个整数,表示反转后的新数。
输入输出样例
输入 #1
123
输出 #1
321
输入 #2
-380
输出 #2
-83
说明/提示
数据范围
−1,000,000,000≤N≤1,000,000,000-1,000,000,000≤N≤1,000,000,000 −1,000,000,000≤N≤1,000,000,000。
noip2011普及组第一题
#include <iostream>
#include <cstring>
using namespace std;
char a[1000000000];
int len;
int main(){
cin>>a;
len=strlen(a);
if(a[0]=='-'){
cout<<"-";
for(int i=len-1;i>0;--i){
if(a[i]!='0'&&len>1)
{
break;
}
len--;
}
for(int i=len-1;i>0;--i)
{
cout<<a[i]-'0';
}
}
else {
for(int i=len-1;i>0;--i){
if(a[i]!='0'&&len>1)
{
break;
}
len--;
}
for(int i=len-1;i>=0;--i)
{
cout<<a[i]-'0';
}
}
return 0;
}