首页 > 代码库 > 算法笔记_161:算法提高 十进制数转八进制数(Java)

算法笔记_161:算法提高 十进制数转八进制数(Java)

目录

1 问题描述

2 解决方案

 


1 问题描述

编写函数,其功能为把一个十进制数转换为其对应的八进制数。程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数。

样例输入
9274
样例输出
22072 样例输入
18
样例输出
22

 

 


2 解决方案

技术分享

具体代码如下:

 

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

public class Main {
    
    public static void main(String[] args) {
        ArrayList<Long> list = new ArrayList<Long>();
        Scanner in = new Scanner(System.in);
        long n = in.nextLong();
        while(n > 0) {
            long temp = n % 2;
            n = n / 2;
            list.add(temp);
        }
        int len = list.size();
        if(len % 3 == 1) {
            list.add(0L);
            list.add(0L);
        } else if(len % 3 == 2) {
            list.add(0L);
        }
        len = list.size() / 3;
        long[] result = new long[len];
        int count = 0;
        for(int i = list.size() - 1;i >= 0;i = i - 3) {
            long a = list.get(i) * 2 * 2;
            long b = list.get(i - 1) * 2;
            long c = list.get(i - 2);
            result[count++] = a + b + c;
        }
        for(int i = 0;i < result.length;i++)
            System.out.print(result[i]);
    }
}

 

算法笔记_161:算法提高 十进制数转八进制数(Java)