qq_32641165
2016-02-16 12:58
采纳率: 0%
浏览 3.8k

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

问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。

输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式
  输出n行,每行为输入对应的八进制正整数。

  【注意】
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。

样例输入
  2
  39
  123ABC

样例输出
  71
  4435274

  【提示】
  先将十六进制数转换成某进制数,再由某进制数转换成八进制。

 ![图片说明](https://img-ask.csdn.net/upload/201602/16/1455627380_783805.png)
 ![图片说明](https://img-ask.csdn.net/upload/201602/16/1455627416_974764.png)

 测试对的 可是提交后却是零分,不懂哪里错了,求指导
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 奇才小胜 2016-02-16 14:03

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

    评论
    解决 3 无用
    打赏 举报
  • qq_32641165 2016-02-16 13:00

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

    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题