Discuss / Java / 作业1

作业1

Topic source

云外方天

#1 Created at ... [Delete] [Delete and Lock User]
package com.test;import java.util.Deque;import java.util.LinkedList;/** * @author ygr * @description 栈练习 * @date 2021/10/27 */public class StackTest {    public static void main(String[] args) {        //整数转换为16进制        String hex = toHex(12500);        if (hex.equalsIgnoreCase("30D4")) {            System.out.println("测试通过");        } else {            System.out.println("测试失败");        }    }    /**     * 利用Stack把一个给定的整数转换为十六进制     *     * @return java.lang.String     * @params n     */    private static String toHex(int n) {        //初始化一个队列        Deque<String> deque = new LinkedList<>();        //商数        int quotient = n / 16;        //余数        int remainder = n % 16;        //商不为0时继续做除法运算        while (quotient != 0) {            //10~15的余数转换为对应的字母再放到队列            switch (remainder) {                case 10:                    deque.push("A");                    break;                case 11:                    deque.push("B");                    break;                case 12:                    deque.push("C");                    break;                case 13:                    deque.push("D");                    break;                case 14:                    deque.push("E");                    break;                case 15:                    deque.push("F");                    break;                default:                    deque.push(String.valueOf(remainder));                    break;            }            //使用获得的商取新余数            remainder = quotient % 16;            //使用获得的商获取新商            quotient /= 16;        }        //被除数除尽商为零时,余数再次放入队列        deque.push(String.valueOf(remainder));        //取出队列        String hexStr = "";        while (!deque.isEmpty()){            hexStr += deque.pop();        }        return hexStr;    }}

云外方天

#2 Created at ... [Delete] [Delete and Lock User]
package com.test;import java.util.Deque;import java.util.LinkedList;/** * @author ygr * @description 栈练习 * @date 2021/10/27 */public class StackTest {    public static void main(String[] args) {        //整数转换为16进制        String hex = toHex(12500);        if (hex.equalsIgnoreCase("30D4")) {            System.out.println("测试通过");        } else {            System.out.println("测试失败");        }    }    /**     * 利用Stack把一个给定的整数转换为十六进制     *     * @return java.lang.String     * @params n     */    private static String toHex(int n) {        //初始化一个队列        Deque<String> deque = new LinkedList<>();        //商数        int quotient = n / 16;        //余数        int remainder = n % 16;        //商不为0时继续做除法运算        while (quotient != 0) {            //10~15的余数转换为对应的字母再放到队列            switch (remainder) {                case 10:                    deque.push("A");                    break;                case 11:                    deque.push("B");                    break;                case 12:                    deque.push("C");                    break;                case 13:                    deque.push("D");                    break;                case 14:                    deque.push("E");                    break;                case 15:                    deque.push("F");                    break;                default:                    deque.push(String.valueOf(remainder));                    break;            }            //使用获得的商取新余数            remainder = quotient % 16;            //使用获得的商获取新商            quotient /= 16;        }        //被除数除尽商为零时,余数再次放入队列        deque.push(String.valueOf(remainder));        //取出队列        String hexStr = "";        while (!deque.isEmpty()){            hexStr += deque.pop();        }        return hexStr;    }}

  • 1

Reply