蓝桥杯BASIC-12 十六进制转八进制
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0-9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
代码
#include<stdio.h>
#include<string.h>char h[100002],b[400002],e[400002];
int main(){int n,j;scanf("%d",&n);while(n--){scanf("%s\n",h);int i,len=0;/*先把16进制化成二进制——从后往前展开 */for(i=strlen(h)-1;i>=0;i--){int v;if(h[i]>='0' && h[i]<='9')v=h[i]-'0';else v=h[i]-'A'+10;for(j=0;j<4;j++){b[len++]=v%2+'0';v/=2;}}b[len]='\0';int x=0,cnt=1;int l=0;for(i=0;i<len;i++){/*每三位二进制转成一位8进制,最后不足三位补0*/if(cnt==4||i==len-1){x=cnt*(b[i]-'0')+x;cnt=1;e[l++]=x+'0';x=0;} else{x=cnt*(b[i]-'0')+x;cnt*=2;}}i=l-1;while(i>=0 && e[i]=='0')/*去掉前导0*/i--;if(i<0)printf("0");for (;i>=0;i--){printf("%c",e[i]);}printf("\n");}return 0;
}
运行结果
蓝桥杯BASIC-12 十六进制转八进制相关推荐
- 蓝桥杯练习题之十六进制转八进制
基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n< ...
- 蓝桥杯C语言 十六进制转八进制
十六进制转八进制 思路分析: 39十六进制先转换为4位二进制,3为0011,9为1001,所以39的二进制为00111001,又把二进制转化为3位八进制,从右边开始数,001为1,111为7,所以39 ...
- 蓝桥杯 基础练习 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转 ...
- 蓝桥杯-基础练习 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转 ...
- 蓝桥杯练习:十六进制转八进制
题目链接:十六进制转二进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母 ...
- 蓝桥杯——基础练习 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转 ...
- 蓝桥杯 基础练习 十六进制转八进制
目录: 1.原题 2.解题思路 3.代码实现 1.原题 资源限制 内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s问题 问 ...
- [蓝桥杯]基础练习 十六进制转八进制
16进制转成2进制,2进制转成8 #include<iostream> #include<string> #include<vector>using namespa ...
- 蓝桥杯:C语言,十六进制转十进制
我的思路:首先将十六进制数的每一位转化为十进制,然后乘以十六的相应次方. 我写的代码: #include<stdio.h> #include<string.h> #define ...
- 蓝桥杯——基础练习——十六进制转十进制
package com.study.蓝桥杯.基础练习;/* 问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出.注:十六进制数中的10~15分别用大写的英文字母A.B ...
最新文章
- Android Activity的生命周期
- winform之窗体固定
- ionic - error
- 免杀新姿势:利用线程将恶意代码注入到内存中
- windows上配置nginx php,Windows下配置Nginx使之支持PHP
- Struts2中的值栈
- 亚马逊创始人贝佐斯离婚协议本周生效 前妻分得380亿美金
- OAuth2 vs JWT,到底怎么选?
- 下面不属于使用工具的潜在收益的是哪个_电子商务概论习题集
- 在Centos8编译Wireshark3.4.5
- 简单明了,彻底地理解Binder
- Windows编程 Windows程序的生与死(上)
- ubuntu 切换中文输入法
- 孙子兵法36计详解(完整版)
- 儿童节到了!让 GitHub 上这几个小游戏帮你找回童真吧!
- Vivado 2017.4版本下载
- 区块链开发之BTC离线签名
- 想要不被裁,看一看 13 年华为老兵的宝贵经验
- 谁生活在地狱,自己心里都有数!---Leo读《不是孙振耀写的职场感言》(3)
- ESP32 之 ESP-IDF 教学(十八)—— 组件配置(KConfig)
热门文章
- 分析iPhone的SpringBoard重启实现
- 嵌入式Linux中TP调试笔记
- Windows下Apache2.4配置SSL(HTTPS)
- php使用腾讯云存储
- 酒鬼酒Q3净利润连续下滑,3大流通股东减持近125万股
- 笔精墨妙,妙手丹青,微软开源可视化版本的ChatGPT:Visual ChatGPT,人工智能AI聊天发图片,Python3.10实现
- [历史档案]我的恋爱历程
- Android Jetpack: 利用 Palette 进行图片取色 | 开发者说·DTalk
- 静态方法可以直接调用实例方法吗
- Mark几款优秀的基于MPC开源播放器的源码供参考.