本文共 1127 字,大约阅读时间需要 3 分钟。
反转整数,即逆序输出原数字,例如:
输入: 123 输出: 321
输入:-123输出:-321
下面是使用数学方法的解题步骤:
public int reverse(int x) { /* 使用数学方法反转,下面是具体步骤 原数字: 321 反转数字:初始化为 0 1. 中间变量 = 原数字 % 10 = 321 % 10 = 1 原数字 = 原数字 / 10 = 321 / 10 = 32 反转数字 = 反转数字 * 10 + 中间变量 = 0 * 10 + 1 = 1 2. 中间变量 = 原数字 % 10 = 32 % 10 = 2 原数字 = 原数字 / 10 = 32 / 10 = 3 反转数字 = 反转数字 * 10 + 中间变量 = 1 * 10 + 2 = 12 3. 中间变量 = 原数字 % 10 = 3 % 10 = 3 原数字 = 原数字 / 10 = 3 / 10 = 0 反转数字 = 反转数字 * 10 + 中间变量 = 12 * 10 + 3 = 123 */ int n = x; int ans = 0; // 保存反转后的数字 int i = 0; int INT_MAX = Integer.MAX_VALUE; int INT_MIN = Integer.MIN_VALUE; while (n!=0) { i = n % 10; n /= 10; // 检查越界 if ((ans > INT_MAX / 10) || ((ans == INT_MAX / 10) && i > 7) || (ans < INT_MIN / 10) || ((ans == INT_MIN / 10) && i < -8)) { return 0; } ans = 10 * ans + i; } return ans; }
转载地址:http://ozgmi.baihongyu.com/