复制Markdown 展开
题目描述
给定一个整数 N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。
输入格式
一个整数
N
输出格式
一个整数,表示反转后的新数。
输入输出样例
输入
123
输出
321
输入
-380
输出
-83
#include <iostream>
using namespace std;
int main()
{
int n,s=0;
cin>>n;
while(n){
s=s*10+n%10;
n/=10;
}
cout<<s<<endl;
return 0;
}
这样子看真的挺简单的,我一开始用的是逐位翻转并输出,导致很难判断是否应该输出某个位置上的0,如90000,和407这种数字的翻转很难做到。
而且这种做法的时间复杂度至少n^2,而上面那种时间复杂度是n。