十六进制转八进制(蓝桥)
算法会超时...但代码以及思路应该没错(16进制转化2进制再转化8进制)
错误原因
1、循环次数过多
2、switch语句使用过多
3、substring(0,3)这个只含开头不含结尾,因此截取是截取三个字符,从第一个到第三个字符,不包含第四个。
import java.util.*;
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.nextLine();String[] res = new String[n];for(int i=0;i<n;i++){String temp = sc.nextLine();char[] n16_temp = new char[temp.length()];String[] n2 = new String[temp.length()];for(int j=0;j<temp.length();j++){n16_temp[j]=temp.charAt(j); //n16_temp[j]=temp.charAt(j)+"";意味着n16得是字符串数组//n16[j]=n16_temp[j]-'0'; // switch(n16_temp[j]){case '0':n2[j] = "0000"; break;case '1':n2[j] = "0001"; //单引号和双引号,一般是区别字符和字符串,但是字符串也能是1个甚至0个字符 break;case '2':n2[j] = "0010";break;case '3':n2[j] = "0011";break;case '4':n2[j] = "0100";break;case '5':n2[j] = "0101";break;case '6':n2[j] = "0110";break;case '7':n2[j] = "0111";break;case '8':n2[j] = "1000";break;case '9':n2[j] = "1001";break;case 'A':n2[j] = "1010";break;case 'B':n2[j] = "1011";break;case 'C':n2[j] = "1100";break;case 'D':n2[j] = "1101";break;case 'E':n2[j] = "1110";break;case 'F':n2[j] = "1111";break;}}if(4*temp.length()%3 != 0){String temp_0 = new String();int s=4*temp.length()%3;switch(s){case 1:temp_0 = "00" + n2[0];n2[0] = temp_0;break;case 2:temp_0 = "0" + n2[0];n2[0] = temp_0;break;}}int num_8 = 4*temp.length()/3;if(4*temp.length()%3 != 0) {num_8++; }String[] n8 = new String[num_8];String n8_temp=Arrays.toString(n2);char[] f = new char[num_8];for(int z=0,m1=0,m2=2;z<num_8;z++){n8[z] = n8_temp.substring(m1,m2);m1=m1+3;m2=m2+3;switch(n8[z]){ case "000":f[z] = '0'; break;case "001":f[z] = '1'; break;case "010":f[z] = '2';break;case "011":f[z] = '3';break;case "100":f[z] = '4';break;case "101":f[z] = '5';break;case "110":f[z] = '6';break;case "111":f[z] = '7';break; }res[i] = Arrays.toString(f);}}for(int i=0;i<n;i++)System.out.println(res[i]);}
}
十六进制转八进制(蓝桥)相关推荐
- 蓝桥杯练习:C语言十六进制转八进制
这题对我来说是有点难度的,最后做出来,但是提交显示 运行错误,看不出哪里出错了. 我的思路: 将十六进制转化为二进制,二进制最后转化为八进制. 首先将十六进制存入数组,然后将数组中每一位转化为对应的十 ...
- 蓝桥杯基础练习合集一(C语言) 1.A+B问题2.数列排序3.十六进制转八进制4.十六进制转十进制5.十进制转十六进制
目录 1.A+B问题 2.数列排序 3.十六进制转八进制 4.十六进制转十进制 5.十进制转十六进制 1.A+B问题 问题描述 输入A.B,输出A+B. 输入格式 输入的第一行包括两个整数,由空格分隔 ...
- 蓝桥杯简单题之十六进制转八进制(JAVA版)
首先对等待程序猿成长之路系列的小伙伴们说声抱歉,春节来临,可能要拖更一段时间,但是草稿已经在写,发布将会于春节后进行发布 春节第一天闲着无聊打算找个蓝桥杯的题目练练手,诶嘿,这就找到一题,话不多说,上 ...
- 蓝桥杯 试题 基础设计 十六进制转八进制
蓝桥杯 基础试题 十六进制转八进制 题目描述: 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10).接下来n行,每行一个由0到9, ...
- Python 蓝桥杯试题 基础练习 十六进制转八进制
Python 蓝桥杯试题 基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行, ...
- 蓝桥杯 十六进制转为八进制 C语言版
** 蓝桥杯 十六进制转为八进制 ** 题目 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大 ...
- python【蓝桥杯vip练习题库】—BASIC-12十六进制转八进制
试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1< ...
- 蓝桥杯-十六进制转八进制(java)
基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB问题描述给定n个十六进制正整数,输出它们对应的八进制数.输入格式输入的第一行为一个正整数n (1<=n<=10).接 ...
- 【蓝桥杯】基础练习 十六进制转八进制(Java实现)
试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1< ...
- java蓝桥杯 试题-基础练习-十六进制转八进制
试题-基础练习-十六进制转八进制 题目 试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 ...
最新文章
- Selenium3自动化测试——11. 下拉框处理
- socket网络间通信初识
- 浪潮as5300技术方案_混闪存储AS5300G5
- 【转】ABP源码分析十:Unit Of Work
- C语言逗号表达式 - C语言零基础入门教程
- oracle的sql语句,where后面的部分,执行顺序是从左往右,还是从右往左?
- [net]ftp ssh http telnet https服务及端口
- Leetcode: Palindrome Linked List
- 摄动(Perturbation)
- java中线程的生命周期_Java中的线程生命周期– Java中的线程状态
- JBOSS最大连接数配置和jvm内存配置
- 黑苹果OC引导配置制作小工具:一键制作黑苹果OpenCore EFI文件
- 安全测试SQL注入与XSS攻击
- 征途LINUX服务端脚本,征途【改版教程】-版本内脚本文件-转载于-喜欢玩网游单机站...
- 火狐 Firefox 浏览器书签同步问题
- MyBatis学习总结-06:动态SQL
- vue.jsv-html,关于vue.js v-bind 的一些理解和思考,vue.jsv-bind
- 然后卸载干净matlab,安装与卸载
- Gif录制神器GifCam
- VMware+CentOS7搭建私有云桌面服务