1.题目描述
给定一个整数 N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。
2.输入格式
一个整数 N.
3.输出格式
一个整数,表示反转后的新数,
输入1:
123
输出1:
321
输入2:
-380
输出2:
-83
4.说明/提示
【数据范围】
−1,000,000,000≤N≤1,000,000,000−1,000,000,000≤N≤1,000,000,000。
5.代码:
#include <stdio.h>
int reverse_integer(int n) {
int reversed = 0;
int sign = (n >= 0) ? 1 : -1; // 记录符号
n = (n < 0) ? -n : n; // 取绝对值
while (n != 0) {
int digit = n % 10; // 取出最后一位数字
reversed = reversed * 10 + digit; // 添加到反转数的最后一位
n /= 10; // 去掉最后一位数字
}
return sign * reversed; // 恢复符号
}
int main() {
int N;
scanf("%d", &N);
// 输出反转结果
printf("%d\n", reverse_integer(N));
return 0;
}