蓝桥杯--BASIC-12 十六进制转八进制

举报
2002 发表于 2022/02/21 10:50:09 2022/02/21
【摘要】 试题 基础练习 十六进制转八进制资源限制时间限制:1.0s   内存限制:512.0MB问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n (1<=n<=10)。  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应的八进制正整数。  ...

试题 基础练习 十六进制转八进制

资源限制
时间限制:1.0s   内存限制:512.0MB
问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。

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

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

  【注意
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。

样例输入
  2
  39
  123ABC

样例输出
  71
  4435274

  【提示
  先将十六进制数转换成某进制数,再由某进制数转换成八进制。
解题思路如下---

import java.util.Scanner;

public class Main {

    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);
                
                //转换为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]);
            }
        }

    }
}

最终效果如下---

希望对大家有所并帮助!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。