给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。
输入共 1 行,1 个整数 N。
输出共 1 行,1 个整数表示反转后的新数。
|N|≤10^9
123
321
-380
-83
c++解法(vector容器)
#include <iostream>
#include <vector>//容器存储
using namespace std;
int main()
{
string a;
cin>>a;
vector<int> A;
if(a[0]=='-')
{
for(int i = 1;i < a.size();i ++ )A.push_back(a[i]-'0');//从负号下一位数字位进行存储
while(A.size()>1&&A.back()==0)A.pop_back();//删去反转之后的前缀零
printf("-");//输出负号
for(int i = A.size()-1;i >= 0;i -- )printf("%d",A[i]);//输出反转数
}
else
{
for(int i = 0;i < a.size();i ++ )A.push_back(a[i]-'0');//从数字位进行存储
while(A.size()>1&&A.back()==0)A.pop_back();//删去反转之后的前缀零
for(int i = A.size()-1;i >= 0;i -- )printf("%d",A[i]);//输出反转数
}
return 0;
}