【问题描述】编写程序实现用把整数n转换成以b为基的b进制数。如果n为负数,则输出的字符串的第一个字符为 -。b为大于1小于37的任意自然数值。当b=2时,输出字符只可能是 0 和 1;当b=16时,输出字符串中可能含有字符为 0- 9,a-f(字母以小写输出)。b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为"1g"。
【输入形式】控制台输入整数n和b,其中n可以为负数。n和b以空格分隔.
【输出形式】控制台输出转化后的字符串s.
【样例输入1】5 2
【样例输出1】101
【样例输入2】-8 8
【样例输出2】-10
【样例说明】5的二进制就是101
【评分标准】
#include <iostream>
#include <stack>
using namespace std;
void com (int x,int y,char a[])
{
stack<int> s;
while(x)
{
s.push(x%y);
x=x/y;
}
while(!s.empty())
{
cout<<a[s.top()];
s.pop();
}
}
int main()
{
char a[]={'0','1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int x,y;
cin>>x>>y;
if(x<0)
{
cout<<"-";
com(-x,y,a);
}
else
com(x,y,a);
return 0;
}