九度OJ 1118:数制转换 (进制转换)
2015-10-23 22:58
399 查看
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:3873
解决:1494
题目描述:
求任意两个不同进制非负整数的转换(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)。
样例输入:
样例输出:
提示:
可以用字符串表示不同进制的整数。
来源:2008年北京大学图形实验室计算机研究生机试真题
代码:
内存限制:32 兆
特殊判题:否
提交:3873
解决:1494
题目描述:
求任意两个不同进制非负整数的转换(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 , nb ; 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 ****************************************************************/
相关文章推荐
- LPC43xx SGPIO Pattern Match Mode
- ogg实现oracle到sql server 2005的同步
- appium for hybrid app 处理webview
- 九度OJ 1118:数制转换 (进制转换)
- 【鸟哥的linux私房菜-学习笔记】首次使用相关知识、在线求助 man page
- 剑指Offer--二叉树的深度
- 【翻译】Ext JS最新技巧——2015-10-21
- C#winform窗体用户控件自定义事件
- 【翻译】Ext JS最新技巧——2015-10-21
- 九度OJ 1117:整数奇偶排序 (排序)
- 【翻译】Ext JS最新技巧——2015-10-21
- Java设计模式5:原型模式
- 九度OJ 1117:整数奇偶排序 (排序)
- iOS学习笔记之文件的压缩和解压(zip)
- 数组
- Java异常之try,catch,finally,throw,throws
- PHP的缓冲区
- iOS巅峰之Swift结构体和类, 枚举, 构造器, 继承, 协议, 扩展(完结篇)
- LiteHttp引言:智能的android网络通信框架
- 九度OJ 1116:加减乘除 (基础题)