题目描述

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

输入格式

一个整数 N。

输出格式

一个整数,表示反转后的新数。

输入输出样例

输入 #1

123

输出 #1

321

输入 #2

-380

输出 #2

-83

说明/提示

【数据范围】

−1,000,000,000≤N≤1,000,000,000。

解

#include<iostream>
#include<cstring>
using namespace std;
long long s[11] = {}, n, k = 0, a = 1;
int main()
{
	memset(s, 0, sizeof(n));//清零
	cin >> n;
	for (int i = 1; i <= 10; i++)s[i] = n / a % 10, a *= 10;
	a = 1e9;
	for (int i = 1; i <= 10; i++)k += s[i] * a, a /= 10;
	while (k % 10 == 0)k /= 10;
	cout << k;
	return 0;
}

更简单的方法

#include<iostream>
#include<cstring>
using namespace std;

int main()
{
	int n, ans = 0; cin >> n;
	while (n)
	{
		ans = ans * 10 + n % 10;
		n /= 10;
	}
	cout << ans;
	return 0;
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐