原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2031
利用stl的 stack实现,已AC
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int N,R;
stack <int> s;
while( cin>>N>>R)
{
if(N<0)//若N是负数,输出负号
cout<<"-";
N=abs(N);//取N绝对值
while( N!=0 )//
{
s.push(N%R);
N/=R;
}
int j = s.size();//取栈大小
for(int i=0; i< j ;i++)//循环输出栈元素
{
int x= s.top();//输出栈顶元素
if( x < 10 )//若进制位小于10,直接输出,否则转换成字符,这里采用了强制类型转换
cout << x;
else
cout << char(x+55);
s.pop();//取栈顶
}
cout<<endl;
}
return 0;
}
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int N,R;
stack <int> s;
while( cin>>N>>R)
{
if(N<0)//若N是负数,输出负号
cout<<"-";
N=abs(N);//取N绝对值
while( N!=0 )//
{
s.push(N%R);
N/=R;
}
int j = s.size();//取栈大小
for(int i=0; i< j ;i++)//循环输出栈元素
{
int x= s.top();//输出栈顶元素
if( x < 10 )//若进制位小于10,直接输出,否则转换成字符,这里采用了强制类型转换
cout << x;
else
cout << char(x+55);
s.pop();//取栈顶
}
cout<<endl;
}
return 0;
}