十六进制转八进制

http://lx.lanqiao.cn/problem.page?gpid=T51

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

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

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

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

样例输入
  2
  39
  123ABC

样例输出
  71
  4435274

思路:由十六进制转八进制利用二进制位相互转化,十六进制是4个二进制位,八进制是3个二进制位。将是十六位的数每位化为4位的二进制,在3位一结合转为八进制即可。

//如果注释掉第27行会报错??????

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
string str;
string two[17] = {"0000", "0001", "0010", "0011",
"0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111"};int main(){int n;cin >> n;while(n--){cin >> str;string ss;string ans;for(int i = 0; i < str.length(); i++){if(str[i] >= '0' && str[i] <= '9'){ss += two[str[i] - '0']; }else{ss += two[str[i] - 'A' + 10];}}
//      cout << ss << endl;  //dev如果注释掉这一行,就崩了,莫名其妙,但注释掉,直接交就可以acint sum = 0;for(int i = ss.length() - 1; i >= 0; i--){if(i == 1){
//              if(ss[i] == '0' && ss[i - 1] == '0'){  //避免产生前置0
//                  break;
//              }sum = (ss[i] - '0') * 1 + (ss[i - 1] - '0') * 2; ans += (sum + '0');break;          }else if(i == 0){
//              if(ss[i] == '0'){ //避免产生前置0
//                  break;
//              }sum = (ss[i] - '0') * 1;    ans += (sum + '0');break;}else{sum = (ss[i] - '0') * 1 + (ss[i - 1] - '0') * 2 + (ss[i - 2] - '0') * 4;   ans += (sum + '0');i -= 2;}}int flag = 0;for(int i = ans.length() - 1; i >= 0; i--){char ch = ans[i]; if(ch != '0' || flag == 1){  //如果前面有前置0的情况,则要去0 cout << ans[i];flag = 1;}}cout << endl ;}return 0;
}

  

转载于:https://www.cnblogs.com/zhumengdexiaobai/p/8379243.html

11-基于dev的bug(还没想通)相关推荐

  1. OSChina 周四乱弹 ——前两天BUG还没改完啊?老子不改了!

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @=clouddyy  :#每日乱弹音乐# <Safe and S ...

  2. 什么题目的暂时还没想好

    序言 在8月底的一次微信谈话中,我定下了一个目标~要用一次性筷子搭起一座埃菲尔铁塔! 其实也不一定是用一次性筷子,只是主要耗材是木料,当然我是不可能选择做木雕的,那东西你给我几个亿我都不想去碰,主要是 ...

  3. 你总是遗憾,是因为你还没想好,你的一生想怎么过?

    点击蓝色"陈树义"关注我哟 这个话题有点沉重,但却是每个人都无法回避的问题.这个问题后续不是几天.几个月可以想清楚,甚至几年的时间也思考不清楚.而之所以聊到这个话题,是因为我似乎有 ...

  4. 《少年班》采访,有些问题结合自己还没想清楚

    15岁考上少年班,却毅然放弃颇有"钱"途的建筑专业,出国学习编导:当在中央电视台工作数年之后,因为觉得没有创造性,果断辞职跳出来创业:"中国第一商业剪辑"当得好 ...

  5. 再预告:DIY大宝剑,大宝剑二号 ——名字还没想好

    DIY大宝剑又又来了,之前发过预告:DIY光剑第二阶段,大宝剑二号 --爱与家庭,银色复仇者,因为结构上出了点问题,太监了,没事老铁没有放弃. 今天收到"玄铁精金重剑",愿郭大侠黄 ...

  6. 圣诞美妆海报还没想好怎么设计,看这里,PSD分层模板!

    在开始做设计之前,首先要去分析圣诞类海报的项目气质,在字体的选择与版式风格,与圣诞元素匹配表达出圣诞节的氛围. 色彩搭配 颜色不能太过鲜艳.刺眼(降低亮度.饱和度) 圣诞节的大部分设计基本上都是以红色 ...

  7. 一个一直没想通的问题:为什么印度的软件外包能比中国强那么多?这应该是中国人的强项啊...

    由于工作关系,我与印度软件工程师一起工作过,最大的印象就是他们的英语发音很奇特啊,不管是和英式还是美式英语都不大搭边啊,虽然我的口语不算太好,但是我还是能明显感觉出来他们的口语比我差一截啊,这也是英国 ...

  8. 自嘲尾款人、丁工人?今年双十一就没想让你做人

    (图片来源于网络,侵删) 文 | 易不二 来源 | 螳螂财经(ID:TanglangFin) 他来了他来了,双十一他带着比奥数题还难的购物规则走来了. 假设一件日常价1188的商品,双十一期间活动价为 ...

  9. 听说过代码洁癖,还没听说过有 Bug 洁癖的?

    当我们写的一个脚本或程序发生各种不可预知的异常时,如果我们没有进行捕获处理的时候,通常都会致使程序崩溃退出,并且会在终端打印出一堆 密密麻麻 的 traceback 堆栈信息来告诉我们,是哪个地方出了 ...

最新文章

  1. 移动端vue ui框架总结
  2. 前端学习(3269):js中this在类中的表现
  3. 【CF#459 A 】Pashmak and Garden (水题)
  4. 六、Web服务器——FilterListener 学习笔记
  5. linux内核spi总线驱动分析,Linux下的SPI总线驱动(三)
  6. 用户账号管理基本概念
  7. Nginx基本数据结构之ngx_list_t
  8. 写给初学者的话---linux使用说明
  9. ❤️《GUI编程从入门到精通》(建议收藏)❤️
  10. java中什么是继承,和继承的接口的关系?
  11. Google发布Chrome 8
  12. 等保二级需要测评吗?多久测评一次?
  13. Java io和nio的应用场景_java中IO和NIO的区别和适用场景
  14. 什么是顶级域名,二级域名和三级域名
  15. AI算法模型线上部署方法总结
  16. 走进全球互联网中枢,顶级域名服务器的分布
  17. catia v5r20破解版 32位64位 安装说明方法
  18. Python的全局安装源配置
  19. 正则表达式限制非中文字符输入
  20. MixamoConverter教程

热门文章

  1. 深度学习后时代,图灵奖得主Bengio研究核心是什么?
  2. 经验 | 没有导师的指导,研究生如何阅读文献、提出创见、写论文?
  3. 中科院自动化所研究员课题组PPT《如何撰写毕业论文?》
  4. docker镜像指定安装源_Docker快速安装以及换镜像源
  5. 120余家自动驾驶公司的行业汇总
  6. 基于Text-CNN模型的中文文本分类实战
  7. 结合图拉普拉斯的半监督学习
  8. 鸿蒙os来了,华为操作系统“鸿蒙OS”来了!
  9. java中面向对象租车问题_答答租车系统-Java面向对象的学习
  10. bee 字符串转int_beego中gbk和utf8编码转换问题