问题描述
- 蓝桥杯 十六进制转换成八进制
-
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式
输出n行,每行为输入对应的八进制正整数。【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。样例输入
2
39
123ABC样例输出
71
4435274【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。![图片说明](http://img.ask.csdn.net/upload/201602/16/1455627380_783805.png) ![图片说明](http://img.ask.csdn.net/upload/201602/16/1455627416_974764.png) 测试对的 可是提交后却是零分,不懂哪里错了,求指导
解决方案
解决方案二:
你题目没有看清楚,十六进制数的最高位是100000位,也就是最大数是16^100001-1,这个数远远比int型能表示的最大数要大。
所以肯定不行。其次你的方法有一点投机取巧,利用c++本身的特点进行转化。建议使用字符串表示然后一个一个的将十六进制
数转化为八进制。
时间: 2024-11-01 01:53:36