问题描述
  给定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. 蓝桥杯练习题之十六进制转八进制

    基础练习 十六进制转八进制 时间限制:1.0s   内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n< ...

  2. 蓝桥杯C语言 十六进制转八进制

    十六进制转八进制 思路分析: 39十六进制先转换为4位二进制,3为0011,9为1001,所以39的二进制为00111001,又把二进制转化为3位八进制,从右边开始数,001为1,111为7,所以39 ...

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

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

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

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

  5. 蓝桥杯练习:十六进制转八进制

    题目链接:十六进制转二进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母 ...

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

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

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

    目录: 1.原题 2.解题思路 3.代码实现 1.原题 资源限制 内存限制:512.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s问题 问 ...

  8. [蓝桥杯]基础练习 十六进制转八进制

    16进制转成2进制,2进制转成8 #include<iostream> #include<string> #include<vector>using namespa ...

  9. 蓝桥杯:C语言,十六进制转十进制

    我的思路:首先将十六进制数的每一位转化为十进制,然后乘以十六的相应次方. 我写的代码: #include<stdio.h> #include<string.h> #define ...

  10. 蓝桥杯——基础练习——十六进制转十进制

    package com.study.蓝桥杯.基础练习;/* 问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出.注:十六进制数中的10~15分别用大写的英文字母A.B ...

最新文章

  1. Android Activity的生命周期
  2. winform之窗体固定
  3. ionic - error
  4. 免杀新姿势:利用线程将恶意代码注入到内存中
  5. windows上配置nginx php,Windows下配置Nginx使之支持PHP
  6. Struts2中的值栈
  7. 亚马逊创始人贝佐斯离婚协议本周生效 前妻分得380亿美金
  8. OAuth2 vs JWT,到底怎么选?
  9. 下面不属于使用工具的潜在收益的是哪个_电子商务概论习题集
  10. 在Centos8编译Wireshark3.4.5
  11. 简单明了,彻底地理解Binder
  12. Windows编程 Windows程序的生与死(上)
  13. ubuntu 切换中文输入法
  14. 孙子兵法36计详解(完整版)
  15. 儿童节到了!让 GitHub 上这几个小游戏帮你找回童真吧!
  16. Vivado 2017.4版本下载
  17. 区块链开发之BTC离线签名
  18. 想要不被裁,看一看 13 年华为老兵的宝贵经验
  19. 谁生活在地狱,自己心里都有数!---Leo读《不是孙振耀写的职场感言》(3)
  20. ESP32 之 ESP-IDF 教学(十八)—— 组件配置(KConfig)

热门文章

  1. 分析iPhone的SpringBoard重启实现
  2. 嵌入式Linux中TP调试笔记
  3. Windows下Apache2.4配置SSL(HTTPS)
  4. php使用腾讯云存储
  5. 酒鬼酒Q3净利润连续下滑,3大流通股东减持近125万股
  6. 笔精墨妙,妙手丹青,微软开源可视化版本的ChatGPT:Visual ChatGPT,人工智能AI聊天发图片,Python3.10实现
  7. [历史档案]我的恋爱历程
  8. Android Jetpack: 利用 Palette 进行图片取色 | 开发者说·DTalk
  9. 静态方法可以直接调用实例方法吗
  10. Mark几款优秀的基于MPC开源播放器的源码供参考.