2 qq 32641165 qq_32641165 于 2016.02.16 20:58 提问

蓝桥杯 十六进制转换成八进制
c++

问题描述
  给定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)

 测试对的 可是提交后却是零分,不懂哪里错了,求指导

2个回答

qq_32641165
qq_32641165   2016.02.16 21:00

图片是这两张,不好意思啊图片图片

u011806194
u011806194   2016.02.16 22:03

你题目没有看清楚,十六进制数的最高位是100000位,也就是最大数是16^100001-1,这个数远远比int型能表示的最大数要大。
所以肯定不行。其次你的方法有一点投机取巧,利用c++本身的特点进行转化。建议使用字符串表示然后一个一个的将十六进制
数转化为八进制。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!