| 神奇的进制转换 | ||||||
|
||||||
| 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 | ||||||
|
这次用栈来做,结果做起来好简单好简单! #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;
}
|
原文地址:http://blog.csdn.net/lsgqjh/article/details/44999547