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

蓝桥杯--基础练习 十六进制转八进制 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式   输出n行,每行为输入对应的八进制正整数。   【注意】   输入的十六进制数不会有前导0,比如012A。   输出的八... 阅读详情

问题描述

在这里插入图片描述

Java 代码实现

方案一:使用 BigInteger 类直接转换。

import java.math.BigInteger;
import java.util.*;

public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		int n = in.nextInt();
		for (int i = 0; i < n; ++i) {
			String s = in.next();
			BigInteger temp = new BigInteger(s, 16);
			System.out.println(temp.toString(8));
		}
		
		in.close();
	}
}

方案二:由十六进制先转换为二进制然后转换为八进制。

import java.util.*;

public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		int n = in.nextInt();
		for (int i = 0; i < n; ++i) {
			String s = in.next();
			System.out.println(binToOct(henToBin(s)));
		}

		in.close();
	}
	// 十六进制转二进制
	public static StringBuilder henToBin(String s) {
		Map<Character, String> map = new HashMap<Character, String>();
		map.put('0', "0000");map.put('1', "0001");map.put('2', "0010");map.put('3', "0011");
		map.put('4', "0100");map.put('5', "0101");map.put('6', "0110");map.put('7', "0111");
		map.put('8', "1000");map.put('9', "1001");map.put('A', "1010");map.put('B', "1011");
		map.put('C', "1100");map.put('D', "1101");map.put('E', "1110");map.put('F', "1111");
		StringBuilder sb = new StringBuilder();
		final int len = s.length();
		for (int i = 0; i < len; ++i) {
			sb.append(map.get(s.charAt(i)));
		}
		return sb;
	}
	// 二进制转八进制
	public static StringBuilder binToOct(StringBuilder s) {
		Map<String, Character> map = new HashMap<String, Character>();
		map.put("000", '0');map.put("001", '1');map.put("010", '2');map.put("011", '3');
		map.put("100", '4');map.put("101", '5');map.put("110", '6');map.put("111", '7');
		StringBuilder sb = new StringBuilder();
		int len = s.length();
		// 长度变为3的倍数,便于转换
		int temp = len % 3;
		if (temp != 0) {
			s.insert(0, temp==1?"00":"0");
			len = s.length();
		}
		// 开始转换
		for (int i = 0; i < len; i+=3) {
			sb.append(map.get(s.substring(i, i+3)));
		}
		// 去除前面的0
		len = sb.length();
		for (int i = 0; i < len; ++i) {
			if (sb.charAt(i) == '0') {
				sb.deleteCharAt(i);
			} else {
				break;
			}
		}
		return sb;
	}
}
C++蓝桥杯 基础练习之十六进制转八进制 C++ 蓝桥杯题目讲解汇总(持续更新) 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   ... 阅读详情

相关推荐

蓝桥杯 基础练习 十六进制转八进制 C语言 高效方式 解决超时问题

蓝桥杯 基础练习 十六进制转八进制 C语言 高效方式 解决超时问题 大家好,这是我第一次书写自己的博客,非常开心你能够阅读这篇文章,希望接下来的内容对你有所帮助。 正文 基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1&amp;lt;=n&amp;lt;=10)。   接下来...

Kongxh的博客 9021

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

16转8进制 这是蓝桥杯基础练习 十六进制转八进制 问题描述:   给定n个十六进制正整数,输出它们对应的八进制数。    输入格式:   输入的第一行为一个正整数n (1&amp;lt;=n&amp;lt;=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。    输...

NeverTh 432

蓝桥杯-基础练习12 十六进制转八进制 (最大测试数据10万位) 源码

蓝桥杯十六进制转八进制源码 要转换的十六进制正整数,每个十六进制数长度不超过100000 1.思路:16进制转2进制,再转8进制,我先转的10进制,数据小还 行,数据大了就game over了。(本题数据最大为10万位) 2.判断2进制的位数对3取模是多少,因为2到8是3位3位的看的。 3.删除最后数据前面的0(题目要求哈)。 4.我就死在这点上,测试数据不是一条条输入的,而是所有数据从文本读入,所以不能用Scanner,得用BufferedReader。 5.最后将StringBuffer转换为String输出,不然就是一直等待测评,我也不知道为什么,或许是我自己的问题吧。这里写图片描述 6.本题注意以下函数用法: ①BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); ②int n = Integer.parseInt(in.readLine()); ③a[i] = in.readLine(); ④char[] temp = a[i].toCharArray(); ⑤StringBuffer s2 = new StringBuffer(); ⑥s2.append(“0000”); ⑦s3.append(s2.substring(0, 1));

蓝桥杯 十六进制转为八进制 C语言版

** 蓝桥杯 十六进制转为八进制 ** 题目 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输出n行,每行为输入对应的八进制正整数。 【注意】   输入的十六进制数不会有前导0,比如012A。   输出的八进制数也不能有前导0。 样例输入   2   39   123ABC 样例输出   

weixin_55966773的博客 7057

ESP32-P4 GPIO双域架构:HP/LP分离、寄存器级控制与低功耗工程实践

GPIO(通用输入输出)是嵌入式系统中最基础且高频使用的硬件接口,其性能、灵活性与功耗特性直接影响产品实时性与续航能力。现代高性能MCU如ESP32-P4通过HP/LP双电源域分离、可编程IO复用(IO MUX)、信号交换矩阵及硬件自动化机制(如ETM事件、Sigma-Delta调制),将传统GPIO升级为兼具模拟能力、亚微秒响应与微安级待机的智能外设子系统。其核心价值在于实现引脚功能动态重构、中断零延迟处理、Deep-sleep期间自主唤醒与多核安全操作。典型应用场景涵盖工业PLC信号采集、电池供电传感器

weixin_35949153的博客 96

Hadoop实战:用MapReduce分析YouTube视频数据集(附完整代码)

本文提供了一个完整的Hadoop MapReduce实战教程,指导读者使用MapReduce框架分析YouTube视频数据集,统计不同视频类别的数量分布。教程涵盖从数据获取、预处理、HDFS操作到Java代码编写、作业提交及结果可视化的全流程,并附有完整代码,帮助开发者深入理解分布式计算思想。

lilh34434的博客 198

蓝桥杯 BASIC-12 基础练习 十六进制转八进制

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

荔枝的FM 600

Mac---安装Navicat

把这个填充好的字符串放入刚才打开的RSA在线加解密的网站中的第二个框框(替换之前的请求码),第一个框框不动(还是之前第10步骤中的私钥),点击RSA私钥加密,这时会得到一个加密的字符串,这个就是激活码。{“K”:“你的K值”, “N”:“52pojie”, “O”:“52pojie.cn”, “DI”:“你的DI值”, “T”:你的时间戳}链接: https://pan.baidu.com/s/1mEVY4hnKdktg-p7DBIfD7A 提取码: twwg。Navicat会弹出一个对话框,点击“注册”

weixin_53970868的博客 1万+

SDNU 1430.十六进制转八进制(python)

Description 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1< =n< =10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输出n行,每行为输入对应的八进制正整数。 注意   输入的十...

weixin_30780221的博客 1143

数据中心机房建设标准及依据

深刻理解、尊重并恪守这些依据,是我们以科学、经济、可靠的方式,为蓬勃发展的数字经济筑牢基石的唯一路径。让我们共同努力,以标准为依据,以匠心为精神,建造更多世界一流的高效能、高可用、高智能的绿色数据中心,共同赋能数字中国的宏伟事业,支撑中华民族在数字时代的伟大复兴征程中稳步前行!今天我将力图以宏大的视角和深入的剖析,系统性地阐述数据中心机房建设所应遵循的多层次、多维度的标准依据,揭示这些依据背后的深层逻辑与时代使命,并探讨其如何共同作用于一座世界级数据中心的诞生。,以支持万兆乃至更高速率的传输。

qq_39980997的博客 1138

深信服防火墙路由模式开局部署-手把手教学(小白篇)

手把手教学,拿到深信服的防火墙路由模式该如何开局?

m0_64423407的博客 2万+

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

蓝桥杯java:基础练习 十六进制转八进制 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输出n行,每行为输入对应的八进制正整数。 注意   输入的十六进制数不会有...

江南小帅瓜的博客 655

分类预测 | MATLAB实现ELM极限学习机多特征分类预测(二分类)

分类预测 | MATLAB实现ELM极限学习机多特征分类预测(二分类)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 778

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

//做题笔记,仅自己看得懂 题目: 经测试,String能接受的长度超过100000,所以本题用上String不影响开法拉第,StringBuilder也是一样 正确姿势: import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public st...

蔡徐坤加入博客园的博客 2530

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留!

不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹

XiaoqiangClub的博客 313

第一部分:VTK基础入门(第1章:VTK简介与概述)

VTK简介与核心特性概述 VTK(Visualization Toolkit)是一个开源的跨平台C++类库,专用于3D计算机图形学、图像处理和科学可视化。由Kitware公司开发,VTK自1993年起源以来,经历了开源化、成熟化和现代化多个发展阶段,现已成为科学可视化的核心工具之一。 VTK的核心特性包括: 管道架构:模块化设计实现数据流管理 丰富的数据支持:处理多边形数据、图像数据等 强大的渲染能力:集成OpenGL,支持多种渲染技术 最新版本VTK 9.4.2增强了现代C++支持,优化了内存管理,并提升

仰望星空的博客 2359

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

问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。 样例输入

柳婼 の blog 1428

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

蓝桥杯基础练习 十六进制转八进制 #include&amp;amp;amp;lt;iostream&amp;amp;amp;gt; using namespace std; string trans(char a) { switch(a) { case'0':return &amp;amp;quot;0000&amp;amp;quot;; case'1':return &amp;amp;quot;0001&amp;amp;

王大头不吃藕的博客 2728

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式 输出n行,每行为输入对应的八进制正整数。 样例输入 2 39 123ABC 样例输出 71 4435274 好久没做水题了,结果...

旺崽的博客 2890

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

基础练习 十六进制转八进制   时间限制:1.0s   内存限制:512.0MB        问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1   接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输

catchingSun的专栏 7155

【蓝桥杯C++】试题 基础练习 十六进制转八进制

【蓝桥杯C++】试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式   输出n行...

LSZ_179的博客 1531
上一篇: UUID 工具类
下一篇: 你管这叫代理模式(Proxy Pattern)
ali48
博客等级 码龄6年 31粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值