题目描述
给定一个整数 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;
}