给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
====================================================
C语言的有符号整数有char, short, int, long四种常用类型。
要定义32位有符号整数,是和编译平台有关的。其中可能为32位的情况为:
16位编译器: long
32位编译器: int, long
64位编译器: int
另外,64位编译器有可能将long也定义为32位,但也有可能为64位。
所以需要区分平台来定义32位有符号整数。
除单片机外,已经不存在16位编译器,所以大多数情况下可以用int来定义32位有符号整数。
因此,这道题目将变量定义为int型整数即可。
#include<stdio.h>
int main(void) {
int x;
scanf("%d", &x);
int temp = x;
int digits = 1;
//计算x的位数
while ((temp > 10) || (temp < -10)) {
temp /= 10;
digits *= 10;
}
int temp2 = 0;
int result = 0;
temp = x;
//反转x
while (temp != 0) {
temp2 = temp % 10;
result += temp2 * digits;
digits /= 10;
temp /= 10;
}
printf("%d\n", result);
return 0;
}