hdu 杭电2031 进制转化
2011-07-03 23:55
176 查看
[align=left]Problem Description[/align] 输入一个十进制数N,将它转换成R进制数输出。
[align=left]Input[/align] 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
[align=left]Output[/align] 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
这是很简单的一道数学问题
需要考虑的是
1.如果N是负数的情况
2.R大于9的情况
3.需要注意输出的顺序
下面是具体的代码
[align=left]Input[/align] 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
[align=left]Output[/align] 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
[align=left]Sample Input[/align]
7 2 23 12 -4 3
[align=left]Sample Output[/align]
111 1B -11
这是很简单的一道数学问题
需要考虑的是
1.如果N是负数的情况
2.R大于9的情况
3.需要注意输出的顺序
下面是具体的代码
//进制转换问题 #include<iostream> #include<stack> using namespace std; int main() { int N,R; stack<char> s;//利用栈后进先出的特点,对得到的数据进行倒序输出 while(cin>>N>>R) { bool flag=true; int t; if(N<0) { flag=false; N=-N; } while(N) { t=N%R; N=N/R; if(t>=10) t=t-10+'A'; else t=t+'0'; s.push(t); } if(!flag)//如果是负数,则压入一个负号 s.push('-'); while(!s.empty()) { cout<<s.top(); s.pop(); } cout<<endl; } return 0; }
相关文章推荐
- HDU 2031 进制转化
- 杭电ACM 2031,2057 进制转化问题
- HDU 2031 进制转化
- HDOJ,杭电1877,又一版A+B。。又是进制转化的题目。。
- hdu 2051 Bitset 把一个十进制转化为2进制数
- 杭电(hdu)2031 进制转换
- HDU_ACM-2031 进制间转换
- HDU 4320 - Arcane Numbers 1 / SWUN 1429 - 进制转化
- swun 1429&hdu 4320 进制转化(大牛&小牛代码)
- HDU--2031--十进制转换到任意进制
- HDU - 2031 进制转换
- hdu 4799 进制转化(水)
- HDU 4278 Faulty Odometer 转化进制
- HDU-2051 Bitset 进制转化(十进制整数向二进制整数转化)
- hdu 4320 Arcane Numbers 1(小数进制转化后是否有限位)
- HDU 2051 10进制转化为2进制
- HDU 2106 decimal system (进制转化求和)
- 杭电 hdu 2031
- hdu 1042 N!(大数阶乘,转化为100000这样的比较大的进制)
- hdu 2031 damn进制!