题目来自LeetCode。
题目描述:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
用三句代码就可以实现(主要代码):
pop = x % 10; //取最后一个数
x /= 10; //去掉最后一个数
rev = rev * 10 + pop; //反转后加起来
衍生问题:
- 把一个n位整数拆分成n个个位数存到数组中:
for (i = 0; i < n; i++)
{
a[i] = x % 10; //取最后一个数
x /= 10; //去掉最后一个数
}
- 求一个整数的位数:
while (x != 0)
{
x /= 10;
n++;
}