整数反转显示
个人解题思路,仅供参考:
import java.util.Date; public class Test { /** * 将给出的32位整数x翻转。 * 例1:x=123,返回321 * 例2:x=-123,返回-321 * * 你有注意到翻转后的整数可能溢出吗?因为给出的是32位整数,则其数值范围为[−2^{31}, 2^{31} − 1] * 翻转可能会导致溢出,如果反转后的结果会溢出就返回 0。 */ public static void main(String[] args) { int n = -1234567891; System.out.println(new Date()); System.out.println(reverse(n)); System.out.println(new Date()); System.out.println(reverse1(n)); System.out.println(new Date()); } /** * 字符串反转法 * @param x int整型 * @return int整型 */ public static int reverse (int x) { if (x == 0) return 0; Boolean flag = true; if (x < 0) { flag = false; x = -x; } String temp = x+""; String newStr = ""; for (int i = temp.length()-1;i >=0 ; i--) newStr += temp.charAt(i); x = Integer.valueOf(newStr); if (!flag) x = -x; return x; } /** * 求余法 * @param x * @return */ public static int reverse1(int x) { int ans = 0, f = 1; if (x < 0) { f = -1; x = -x; } while (x != 0) { ans = ans * 10 + x % 10; x /= 10; } return ans * f; } }
运行结果: