import java.util.Scanner;
public class DecToHex {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
String hex = Long.toHexString(n).toUpperCase(); // 核心一行
System.out.println(hex);
}
}
Long.toHexString 處理 0~2³¹-1 範圍,回傳無前導 0 的小寫十六進制字串。toUpperCase() 符合題目大寫要求。Long.MAX_VALUE,改用 BigInteger:new BigInteger(String.valueOf(n)).toString(16).toUpperCase()。核心邏輯:反覆取餘數 (mod 16) 並除以 16,餘數對應 0-9,A-F,最後逆序輸出。
public static String toHex(long n) {
if (n == 0) return "0";
char[] digits = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder();
while (n > 0) {
int rem = (int)(n % 16);
sb.append(digits[rem]);
n /= 16;
}
return sb.reverse().toString(); // 逆序
}
StringBuilder 避免字串拼接效能問題。reverse() 直接反轉內部字元陣列,O(N)。n == 0 邊界情況。Long.toHexString 行為)。int/long 範圍內,Long.toHexString 即可 AC。掌握庫函式與手動演算法雙軌,應對生產與考試皆無虞。