博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯:十六进制转八进制
阅读量:5136 次
发布时间:2019-06-13

本文共 1420 字,大约阅读时间需要 4 分钟。

  基础练习 十六进制转八进制  

时间限制:1.0s   内存限制:512.0MB
      
问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
  输出n行,每行为输入对应的八进制正整数。
注意
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
提示:
  先将十六进制数转换成某进制数,再由某进制数转换成八进制。 
#include
#include
int b[1000005];//注意这里数组千万别开小了,开小了不过char s[1000005];int main(){ int n,i,k,j,temp,len; char c; scanf("%d",&n); while(n--) { scanf("%s",s); len=strlen(s); for(i=0;i
='0'&&c<='9') temp=c-'0'; else temp=c-55; j=3;k=4*i; while(j>-1) { b[k+j]=temp%2; j--; temp=temp/2; } } len=len*4-1;j=0; while(len>=2) { temp=b[len]+(b[len-1])*2+b[len-2]*4; s[j]=(char)(temp+'0'); len=len-3; j++; } i=0;temp=0; while(i<=len) { temp=temp*2+b[i]; i++; } if(temp!=0) { s[j]=(char)(temp+'0'); } else { j--; } for(j;j>=0;j--) { printf("%c",s[j]); } printf("\n"); } return 0;}

 

 

转载于:https://www.cnblogs.com/jianfengyun/p/3586650.html

你可能感兴趣的文章
【计算机视觉】期刊整理
查看>>
【Linux开发】linux中关于dma_alloc_coherent的用法
查看>>
Sublime 输入中文显示方框问号乱码
查看>>
bootstrap-datepicker宽度高度自适应
查看>>
字符串函数
查看>>
带返回值的存储过程
查看>>
表格测试
查看>>
Android 命名规范 (提高代码可以读性) 转
查看>>
移动设备尺寸规范汇总(转)
查看>>
Oracle 创建用户,表空间
查看>>
map set区别
查看>>
Mysql
查看>>
面向对象-面向对象和面向过程的区别
查看>>
数组Array的一些方法
查看>>
window10设置文件的默认打开方式
查看>>
SQLiteOpenHelper 升级onUpgrade 的调用问题
查看>>
android Firebase中配置 Crashlytics
查看>>
典型的阻容降压电路
查看>>
SQL数据库数据类型详解
查看>>
MVC 服务器文件下载
查看>>