题目:[NOIP2011 普及组] 数字反转
给定一个整数N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例
2)。
70分版本:当输入为0的时候无法通过,中间有0的也会无法输出。
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
if(s[0]=='-')//负数
{
cout<<"-";
for(int i=s.length()-1;i>=1;i--)
{
if(s[i]!='0')
{
cout<<s[i];
}
}
}
else {//正数
for(int i=s.length()-1;i>=0;i--)
{
if(s[i]!='0')
{
cout<<s[i];
}
}
}
return 0;
}
80分版本:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
int a=s.length()-1;
if(s.length()==1&&s[0]=='0')
{
cout<<"a";
}
if(s[0]=='-')//负数
{
cout<<"-";
for(int i=s.length()-1; i>=1; i--)
{
if((i==(s.length()-1))&&(s[i]!='0'))
{
cout<<s[a];
}
if(i!=a)
cout<<s[i];
}
}
else //正数
{
for(int i=s.length()-1; i>=0; i--)
{
if(i==a&&(s[a]!='0'))
{
cout<<s[a];
}
if(i!=a)
cout<<s[i];
}
}
return 0;
}