九度OJ 1118:数制转换 (进制转换)
来源:互联网 发布:韩信点兵 算法 vb 编辑:程序博客网 时间:2024/05/13 16:35
- 题目描述:
求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。
- 输入:
输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。
数据可能存在包含前导零的情况。
- 输出:
可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。
- 样例输入:
15 Aab3 7
- 样例输出:
210306
- 提示:
可以用字符串表示不同进制的整数。
- 来源:
- 2008年北京大学图形实验室计算机研究生机试真题
代码:
#include <stdio.h>#include <string.h> #define N 12 int char2int(char c){ if (c >= '0' && c <= '9') return (c - 48); else { switch (c) { case 'a': case 'A': return 10; break; case 'b': case 'B': return 11; break; case 'c': case 'C': return 12; break; case 'd': case 'D': return 13; break; case 'e': case 'E': return 14; break; case 'f': case 'F': return 15; break; default: return 0; } } } char int2char(int i){ if (i >= 0 && i <= 9) return (i + 48); else { switch (i) { case 10: return 'A'; break; case 11: return 'B'; break; case 12: return 'C'; break; case 13: return 'D'; break; case 14: return 'E'; break; case 15: return 'F'; break; default: return '0'; } }}int main(void){ int a, b, n; char na[N], nb[N]; int i; while (scanf("%d%s%d", &a, na, &b) != EOF) { n = 0; for (i=0; i<strlen(na); ++i) n = n*a + char2int(na[i]); i = 0; do { nb[i] = int2char(n%b); i++; n = n/b; }while (n>0); nb[i] = '\0'; for (i=strlen(nb)-1; i>=0; --i) printf("%c", nb[i]); printf("\n"); } return 0;} /************************************************************** Problem: 1118 User: liangrx06 Language: C Result: Accepted Time:10 ms Memory:912 kb****************************************************************/
0 0
- 九度OJ 1118:数制转换 (进制转换)
- 九度OJ 1118 数制转换
- 九度OJ 题目1118:数制转换
- 九度oj-1118-数制转换
- 九度OJ-1118-数制转换
- 九度OJ题目1118:数制转换
- 数制转换 (九度oj题目44)
- 【九度OJ】题目1118:数制转换 解题报告
- 九度1118:数制转换
- 九度OJ 1118 数制转换(a进制 -> b进制)
- 九度OnlineJudge题目1118:数制转换
- 九度题目1118数制转换
- 九度 题目1118:数制转换
- oj-14-数制转换
- 九度OJ 1080: 进制转换
- 九度OJ 1080 进制转换
- 九度OJ-1080:进制转换
- 九度OJ 1138 进制转换
- UML书籍
- 【翻译】Ext JS最新技巧——2015-10-21
- 剑指Offer--二叉树的深度
- 借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码
- sizeof
- 九度OJ 1118:数制转换 (进制转换)
- 你所不知道的事儿--C++中delete指针后最好赋值为NULL
- LiteHttp 第一节:初始化和初步使用
- 处事22计
- MSF终端命令
- 九度OJ 1119:Integer Inquiry(整数相加) (大数运算)
- 如何调整seekbar的高度
- Xms Xmx PermSize MaxPermSize 区别
- 洛谷P1024/NOI题库7891(2.3)/NOIP2001提高组T1 一元三次方程求解