蓝桥杯试题--基础练习 十六进制转八进制

2024-04-22 22:58

本文主要是介绍蓝桥杯试题--基础练习 十六进制转八进制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

资源限制
时间限制:1.0s
内存限制:512.0MB

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

输入格式   
输入的第一行为一个正整数n (1<=n<=10)。接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过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);int n = sc.nextInt();for(int cnt=0;cnt<n;cnt++){String str = sc.next();StringBuilder str2 = To_binary(str);To_Octal(str2);}}public static StringBuilder To_binary(String str){     //16进制转换为2进制StringBuilder str2 = new StringBuilder();      //StringBuilder用来申明可变字符串for(int i=0;i<str.length();i++){char c = str.charAt(i);switch(c){case '0':str2.append("0000");break;case '1':str2.append("0001");break;case '2':str2.append("0010");break;case '3':str2.append("0011");break;case '4':str2.append("0100");break;case '5':str2.append("0101");break;case '6':str2.append("0110");break;case '7':str2.append("0111");break;case '8':str2.append("1000");break;case '9':str2.append("1001");break;case 'A':str2.append("1010");break;case 'B':str2.append("1011");break;case 'C':str2.append("1100");break;case 'D':str2.append("1101");break;case 'E':str2.append("1110");break;case 'F':str2.append("1111");break;default:break;}}return str2;}public static void To_Octal(StringBuilder str){  //转为8进制,转1位输出1位int len = str.length();int ans=0,s = 0;if(len % 3==1){                          //最高位的补零模拟ans = str.charAt(0)-'0';s+=1;}else if(len % 3==2){ans = (str.charAt(0)-'0')*2 + (str.charAt(1)-'0');s+=2;}if(ans>0)System.out.print(ans);boolean flog = true;for(int i=s;i<str.length();i+=3){ans =(str.charAt(i)-'0')*4+ (str.charAt(i+1)-'0')*2 + (str.charAt(i+2)-'0');if(flog){if(ans==0){continue;}else{flog = false;}}System.out.print(ans);}System.out.println();}
}

这篇关于蓝桥杯试题--基础练习 十六进制转八进制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/927105

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念