十进制整数转十五进制数思路及代码实现(Java实现)

输入一个十进制整数,将这个数转化成对应的十五进制数(在十五进制中,A表示10,B表示11,C表示12,D表示13,E表示14),请写出转换程序。

例如:235表示为10A

请编写流程图,并用熟悉的计算机语言编写相应的程序

 

思路:如例子中十进制235,转化为十五进制数过程如下:

十进制整数转十五进制数思路及代码实现(Java实现)_第1张图片

 

代码如下:

package com.Timer.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

/**
 * Create with IntelliJ IDEA
 * Author: zhouyichen
 * Date:{2019/7/22}
 * Time:{20:16}
 */
public class Test1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int number=scanner.nextInt();
        System.out.println(transform(number));
    }

    public static String transform(int x) {
        ArrayList list = new ArrayList<>();
        StringBuilder result = new StringBuilder();
        //依次得到所有的余数
        while(x != 0) {
            list.add(x % 15);
            x /= 15;
        }
        //将存放余数的list逆置
        Collections.reverse(list);
        //遍历list,进行相应的转换
        for(int i = 0; i<=list.size()-1; i++) {
            if(list.get(i) == 10) {
                result.append('A');
            }else if(list.get(i) == 11){
                result.append('B');
            }else if(list.get(i) == 12){
                result.append('C');
            }else if(list.get(i) == 13){
                result.append('D');
            }else if(list.get(i) == 14){
                result.append('E');
            }else {
                result.append(list.get(i));
            }
        }
        return result.toString();
    }

}

       注意:代码还有一些缺陷,比如说无法判断负数,int的范围问题,在判断部分的代码冗余,代码的可扩展性等等,可以在写的时候注意一下这些点。

你可能感兴趣的:(java,算法题,面经)