Java蓝桥杯 基础练习 十六进制转八进制

原题目:
问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。

输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式
  输出n行,每行为输入对应的八进制正整数。

题目看起来很简单。
正常情况下直接

public class Main {
    public static void main(String args[]){

        Scanner a = new Scanner(System.in);
        Integer k = a.nextInt();
        String[] st = new String[k];
        for(int i = 0;i

但是发现该答案无法通过。


image.png

原因如下图:


image.png

这输入一个比一个大。最后都要爆表了。无法用十进制的整型和integer类去做中间转换。
如果想着手动用字符串拼接是非常麻烦且不必要的。

正确方法是用大数据类型BigInteger处理

class lqMain{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        String[] str = new String[k];
        for(int i = 0;i

代码正常通过。


image.png

你可能感兴趣的:(Java蓝桥杯 基础练习 十六进制转八进制)