(C++)数字反转

  • Post author:
  • Post category:其他


题目描述

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见实例 2)。

输入描述

输入共 1 行,一个整数N,−10^9≤N≤10^9。

输出描述

输出共 1 行,一个整数,表示反转后的新数。

输入输出样例

示例 1

输入

123

输出

321

示例 2

输入

-380

输出

-83

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

参考答案

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;


int main()
{
	string a;
	cin>>a;
	bool is_minus = a[0]=='-';
	if(is_minus)
		a.erase(0,1);
	reverse(a.begin(),a.end());
	int k = 0;
	while (k<a.size()-1 && a[k]=='0')
		k++;
	if (is_minus)
		cout<<'-';
	cout<<a.substr(k)<<endl;
}



版权声明:本文为qq_44501429原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。