问题描述:
编写函数将十进制整数按8进制输出,然后编写main函数验证该函数。
例如输入12,则输出为:12=014,输入32,则输出32=040。
输入格式:
输入一个整数。
输出格式:
输出这个整数的八进制形式。
样例输入:
12
样例输出:
014
数据规模与约定:
输入的整数n>=0.
需要对输入的数字进行判断,如果输入的是0则输出不需要在0的前边拼接0,只有输入的不是0的时候才需要在输出的结果前边加上0(善意提醒:如果不加判断,则结果之能是66分,亲测。。。)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) throws IOException {
// 创建输入流
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine(); // 读取数字
// 进制转换
if(line.equals("0")) {
System.out.println(change(line, 10, 8));
} else {
System.out.println("0" + change(line, 10, 8));
}
}
/*
* 利用BigInteger进行进制转换
* number: 要进行转换的数字
* x: 规定number的进制
* y: 目的进制(需要输出的进制)
*/
private static String change(String number, int x, int y) {
return new BigInteger(number, x).toString(y);
}
}