Discuss / Java / 交作业:请利用Stack把一个给定的整数转换为十六进制

交作业:请利用Stack把一个给定的整数转换为十六进制

Topic source

Young-96

#1 Created at ... [Delete] [Delete and Lock User]
import java.util.*;

public class Main {
    public static void main(String[] args) {
        String hex = toHex(12500);
        if (hex.equalsIgnoreCase("30D4")) {
            System.out.println("测试通过");
        } else {
            System.out.println("测试失败");
        }
    }

    static String toHex(int n) {
        Deque<String> stack = new LinkedList<>();

        int jinzhi = 16;
        int shang = n / jinzhi;
        int yushu = n % jinzhi;

        stack.push("%x".formatted(yushu));
        while (shang != 0) {
            yushu = shang % jinzhi;
            stack.push("%x".formatted(yushu));
            shang = shang / jinzhi;
        }

        StringBuilder sb = new StringBuilder();
        while (stack.peek() != null) {
            sb.append(stack.pop());
        }

        System.out.println(sb.toString());
        return sb.toString();
    }
}

王乔疯

#2 Created at ... [Delete] [Delete and Lock User]

import java.util.*;

public class Main {

    public static void main(String[] args) {

        String hex = toHex(12500);

        if (hex.equalsIgnoreCase("30D4")) {

            System.out.println("测试通过");

        } else {

            System.out.println("测试失败");

        }

    }

    static String toHex(int n) {

     String hex = Integer.toHexString(n);

     Integer.parseInt(hex, 16);

        return hex;

    }

}


  • 1

Reply