蓝桥杯-----十六进制转八进制
基础练习 十六进制转八进制
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
样例输入
2
39
123ABC
样例输出
71
4435274
解题思路
可将16进制数先转为2进制数,再利用2进制数转为8进制
代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
char z[400000];
int main()
{string a;int j,i=0,k;int n;cin>>n;while(n--){cin>>a;i=a.length();//cout<<i<<endl;k=0;for(j=0;j<i;j++){switch(a[j]){case '0':z[k]='0';z[k+1]='0';z[k+2]='0';z[k+3]='0';k+=4;break;case '1':z[k]='0';z[k+1]='0';z[k+2]='0';z[k+3]='1';k+=4;break;case '2':z[k]='0';z[k+1]='0';z[k+2]='1';z[k+3]='0';k+=4;break;case '3':z[k]='0';z[k+1]='0';z[k+2]='1';z[k+3]='1';k+=4;break;case '4':z[k]='0';z[k+1]='1';z[k+2]='0';z[k+3]='0';k+=4;break;case '5':z[k]='0';z[k+1]='1';z[k+2]='0';z[k+3]='1';k+=4;break;case '6':z[k]='0';z[k+1]='1';z[k+2]='1';z[k+3]='0';k+=4;break;case '7':z[k]='0';z[k+1]='1';z[k+2]='1';z[k+3]='1';k+=4;break;case '8':z[k]='1';z[k+1]='0';z[k+2]='0';z[k+3]='0';k+=4;break;case '9':z[k]='1';z[k+1]='0';z[k+2]='0';z[k+3]='1';k+=4;break;case 'A':z[k]='1';z[k+1]='0';z[k+2]='1';z[k+3]='0';k+=4;break;case 'B':z[k]='1';z[k+1]='0';z[k+2]='1';z[k+3]='1';k+=4;break;case 'C':z[k]='1';z[k+1]='1';z[k+2]='0';z[k+3]='0';k+=4;break;case 'D':z[k]='1';z[k+1]='1';z[k+2]='0';z[k+3]='1';k+=4;break;case 'E':z[k]='1';z[k+1]='1';z[k+2]='1';z[k+3]='0';k+=4;break;case 'F':z[k]='1';z[k+1]='1';z[k+2]='1';z[k+3]='1';k+=4;break;}}/*for(i=0;i<k;i++)cout<<z[i];cout<<endl;*/if(k%3==0){for(i=0;i<k;){if(z[i]=='0'&&z[i+1]=='0'&&z[i+2]=='0'&&i!=0){cout<<'0';i+=3;}else if(z[i]=='0'&&z[i+1]=='0'&&z[i+2]=='0'&&i==0){i+=3;}else if(z[i]=='0'&&z[i+1]=='0'&&z[i+2]=='1'){cout<<'1';i+=3;}else if(z[i]=='0'&&z[i+1]=='1'&&z[i+2]=='0'){cout<<'2';i+=3;}else if(z[i]=='0'&&z[i+1]=='1'&&z[i+2]=='1'){cout<<'3';i+=3;}else if(z[i]=='1'&&z[i+1]=='0'&&z[i+2]=='0'){cout<<'4';i+=3;}else if(z[i]=='1'&&z[i+1]=='0'&&z[i+2]=='1'){cout<<'5';i+=3;}else if(z[i]=='1'&&z[i+1]=='1'&&z[i+2]=='0'){cout<<'6';i+=3;}else if(z[i]=='1'&&z[i+1]=='1'&&z[i+2]=='1'){cout<<'7';i+=3;}}cout<<endl;}if(k%3==1){if(z[0]=='1')cout<<'1';for(i=1;i<k;){if(z[i]=='0'&&z[i+1]=='0'&&z[i+2]=='0'){cout<<'0';i+=3;}else if(z[i]=='0'&&z[i+1]=='0'&&z[i+2]=='1'){cout<<'1';i+=3;}else if(z[i]=='0'&&z[i+1]=='1'&&z[i+2]=='0'){cout<<'2';i+=3;}else if(z[i]=='0'&&z[i+1]=='1'&&z[i+2]=='1'){cout<<'3';i+=3;}else if(z[i]=='1'&&z[i+1]=='0'&&z[i+2]=='0'){cout<<'4';i+=3;}else if(z[i]=='1'&&z[i+1]=='0'&&z[i+2]=='1'){cout<<'5';i+=3;}else if(z[i]=='1'&&z[i+1]=='1'&&z[i+2]=='0'){cout<<'6';i+=3;}else if(z[i]=='1'&&z[i+1]=='1'&&z[i+2]=='1'){cout<<'7';i+=3;}}cout<<endl;}if(k%3==2){if(z[0]=='0'&&z[1]=='1')cout<<'1';else if(z[0]=='1'&&z[1]=='0')cout<<'2';else if(z[0]=='1'&&z[1]=='1')cout<<'3';for(i=2;i<k;){if(z[i]=='0'&&z[i+1]=='0'&&z[i+2]=='0'){cout<<'0';i+=3;}else if(z[i]=='0'&&z[i+1]=='0'&&z[i+2]=='1'){cout<<'1';i+=3;}else if(z[i]=='0'&&z[i+1]=='1'&&z[i+2]=='0'){cout<<'2';i+=3;}else if(z[i]=='0'&&z[i+1]=='1'&&z[i+2]=='1'){cout<<'3';i+=3;}else if(z[i]=='1'&&z[i+1]=='0'&&z[i+2]=='0'){cout<<'4';i+=3;}else if(z[i]=='1'&&z[i+1]=='0'&&z[i+2]=='1'){cout<<'5';i+=3;}else if(z[i]=='1'&&z[i+1]=='1'&&z[i+2]=='0'){cout<<'6';i+=3;}else if(z[i]=='1'&&z[i+1]=='1'&&z[i+2]=='1'){cout<<'7';i+=3;}}cout<<endl;}}
return 0;
}
蓝桥杯-----十六进制转八进制相关推荐
- 蓝桥杯 十六进制转为八进制 C语言版
** 蓝桥杯 十六进制转为八进制 ** 题目 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大 ...
- 菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 万万没想到啊,回老家过年断更的几天之后,我会因为无聊在除夕这天做了会儿题,然后写篇题解. 文章目录 [题目] [我的代码] ...
- 蓝桥杯-十六进制转八进制(java)
基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB问题描述给定n个十六进制正整数,输出它们对应的八进制数.输入格式输入的第一行为一个正整数n (1<=n<=10).接 ...
- 蓝桥杯:十六进制转八进制
基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n< ...
- 蓝桥杯——十六进制转八进制(Java解法)
这道题其实挺难的,之前做过一次,用的十六进制转化为十进制,然后用十进制再转化为八进制,代码很简单,用的jdk上自带的进制转换进行换算. import java.util.Scanner; /** * ...
- 蓝桥杯-十六进制转八进制
这个题还是有点含金量,第一遍做出来,很可能会超时,比如以下代码: import java.util.ArrayList; import java.util.Scanner;public class M ...
- 蓝桥杯16转八c语言,蓝桥杯 十六进制转八进制
思路: 先将十六进制转为二进制,再将二进制转为八进制 代码: #include #include #include #include #include #include #define for1(i, ...
- 蓝桥杯——十六进制转八进制
资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行 ...
- 蓝桥杯 十六进制转十进制 C语言版
蓝桥杯 十六进制转十进制 C语言版 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示 ...
- 十进制转十六进制c语言_蓝桥杯十六进制转十进制,十进制转十六进制精简版(C++)...
[plain] view plaincopy //十六进制转十进制 #include<iostream> using namespace std; #include<string&g ...
最新文章
- PyTorch中文版官方教程来啦(附下载)
- 超便携式截屏录屏软件FastStone Capture
- 终于!《iOS 全埋点解决方案》正式出版
- linux下jdk的安装和配置
- 使用React,Redux和Router进行真正的集成测试
- c语言不会可以学好java吗_不会C语言能学Java吗
- 成都理工大学工程技术学院计算机专业收分线,2019年成都理工大学工程技术学院美术类专业录取分数线...
- Golang生成C动态库.so和静态库.a
- 有关正则表达式的一些用法总结
- 通知 notification
- 杭州银行面试题【杭州多测师】【杭州多测师_王sir】
- 北斗/GPS差分定位技术有哪些?
- 计算机文件夹无法排序,文件夹下文件不能手动调整顺序?-开启Windows 7文件/文件夹手动排序功能...
- 2014年蓝桥杯预赛 C/C++本科B组 解题报告 史丰收速算
- MySQL给表和字段添加注释
- 华为路由器命令手册_用数据说话,华为路由Q2 Pro与网件R7800对比测评
- [云原生专题-29]:K8S - 核心概念 - 名字空间/命名空间概念详解与主要操作案例
- linux 锐捷客户端 脚本,基于802.1x的锐捷linux客户端认证方法(最新)
- 十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(2)
- Clearing Floats清除浮动--clearfix的不同方法的使用概述
热门文章
- 技术 | Python从零开始系列连载(二十三)
- gitbook 使用命令
- android 利用cmdline,将參数从preloader传递到kernel
- Poj 2187 旋转卡壳
- 《R语言初学指南》一1.4 实际案例
- 删除已配对的View Security Server、View Replica Server
- 爱与光 android4.0学习
- SQL 复合查询条件(AND,OR,NOT)对NULL值的处理
- js 验证文本框为数字的正则表达式
- pytorch和python一样吗_PyTorch可以和TensorFlow一样快,有时甚至比TensorFlow更快了?...