题目

从标准输入读入一个非负十进制整数,将其转换为大写十六进制字符串并在控制台输出。

输入格式:一行输入一个非负整数 n。

输出格式:输出大写十六进制字符串(如 255 对应 FF),末尾换行。

数据范围与约定:0 ≤ n ≤ 2×109。

思路与算法

1. 十六进制字符映射
余数 r = n % 16:若 r < 10 映射为 '0' + r;若 r ≥ 10 映射为 'A' + (r - 10)。

2. 逆序输出
同样采用除 16 取余、逆序排列的逻辑,直到 n == 0。0 特判输出 0。

完整程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();

        // 转为小写十六进制字符串输出
        System.out.println(Long.toHexString(n));
    }
}

运行示例

输入:

255

输出:

ff