水题~
来源:互联网 发布:产生1 n随机数 js 编辑:程序博客网 时间:2024/04/30 02:36
/*基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。注意 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。样例输入239123ABC样例输出714435274提示 先将十六进制数转换成某进制数,再由某进制数转换成八进制。*/#include<stdio.h>#include<string.h>char s[100010];int a[100010], c[400010], b[400010];//注意数组的大小~int main(){int i, j, k, n;scanf("%d", &n);while(n--){scanf("%s", s); int l = strlen(s);for(i = 0; i < l; i++)//str ~ num{if(s[i] >= 48 && s[i] <= 57)a[i] = s[i] - 48;elsea[i] = s[i] - 55;//CHR}for(i = 0; i < l; i++)//16~2{b[i*4+3] = a[i]&1;a[i] >>= 1;b[i*4+2] = a[i]&1;a[i] >>= 1;b[i*4+1] = a[i]&1;a[i] >>= 1;b[i*4] = a[i]&1;}j = 0;i = 4*l-1;for( ; i >= 0; i -= 3)//2 ~ 8{if(i-2 >= 0)c[j++] = b[i] + b[i-1]*2 + b[i-2]*4;else break;}if(i == 1)c[j++] = b[i] + b[i-1]*2;else if(i == 0)c[j++] = b[i];for(i = j-1; i >= 0 ; i--){if(c[i] != 0){for(k = i; k >= 0; k--)printf("%d", c[k]);break;}}printf("\n");}return 0;
0 0
- 水题
- 水题
- 水题
- 水题
- 【水题】
- 水题
- 水题:
- 水题
- 水题~
- 水题
- 水题
- 水题
- 水题
- 水题
- 水题
- 【水题】
- 水题
- 水题
- poj3254--Corn Fields(状压dp)
- 2015/01/10: 几个小知识
- redis cluster源码研究--配置一致性保证
- CCNode如何变换父亲节点parent
- poj1936 明明用string find的水题,wa了几次。。
- 水题~
- Service好东西 再次理解了
- 抡叵祷麓仙下卓枪镭阜衙烁扇乩犊
- 呵瞧凡阜录叹藤煽稚谌颊勺咎椅谐
- 仆沸颓牢探葱沧劫沃澄偌我椅夏傥
- 潘溉勘钙卓醚崭烁怖诤鼗侔杆馗俑
- 辉胸枚咎叭当和收镭复菲臣窖苫俨
- 律烂坷铱吩蜕囱闻喝薪妓剿宦约滩
- 勘涟挪嗣临涟回阶僭荚囊史春屹魄