神奇的进制转换 | ||||||
|
||||||
Description | ||||||
xuxu的数据结构要考试了,所以他在很努力的看书,有一天他看呀看呀看,突然看到一个进制转换的题目,说是要将一个十进制数转换成二进制数,他算呀算呀算,然后就把这个问题解决了。。。。。 可是他很爱思考,他想怎么样能够将这个十进制数转换成K进制的数呢?求帮助,help!!!! |
||||||
Input | ||||||
本题有多组测试数据,对于每组数据输入两个数n和k, n(32位整数)表示一个十进制数,k表示所需要转换的k进制。 (2<= k<=16)。 |
||||||
Output | ||||||
输出为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,11用B表示等等)。 |
||||||
Sample Input | ||||||
7 2 23 12 -4 3 |
||||||
Sample Output | ||||||
111 1B -11 |
||||||
Source | ||||||
新生练习赛(2013.11.16) | ||||||
Author | ||||||
[email protected] 这次用栈来做,结果做起来好简单好简单! #include<iostream> #include<stack> using namespace std; int main() { int n,k; while(cin>>n>>k) { int flag=0; stack<int>ls; if(n<0) { flag=1; n=-n; } while(n!=0) { ls.push(n%k); n/=k; } if(flag) cout<<"-"; while(!ls.empty()) { if(ls.top()>9) { cout<<char(ls.top()-10+'A'); ls.pop(); } else { cout<<ls.top(); ls.pop(); } } cout<<endl; } return 0; } |
时间: 2024-10-29 10:46:44