问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
package com.test01.xyx;
import java.util.Scanner;
/**
* @author yuxing
* @create 2022-02-05-12:18
* @content:给定n个十六进制正整数,输出它们对应的八进制数。
*/
public class Test07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//获得输入16进制数的个数
int count = sc.nextInt();
if (count >= 1 && count <= 10) {
//创建一个数组
int[] arr = new int[count];
//对每一个数进行操作
for (int i = 0; i < count; i++) {
//获得输入的16进制数字符串
String strnum = sc.next();
//转换为16进制
Integer hexnum = Integer.valueOf(strnum, 16);
System.out.println(hexnum);
//转换为8进制字符串
String num = Integer.toOctalString(hexnum);
//转换为Int类型
int result = Integer.parseInt(num);
//存入数组
arr[i] = result;
}
//遍历数组输出
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
}