张天翔 • 10个月前
怎么AC?
评论:
#include<iostream>
#include<stack>
using namespace std;
stack <int> ans;
int main(){
int n,m;
cin>>n>>m;
if (n == 0){
ans.push(0);
}
while (n > 0){
ans.push(n % m);
n /= m;
}
while (!ans.empty()){
if (ans.top() >= 10){
putchar((char)(ans.top() - 10 + 'A'));
}
else{
cout<<ans.top();
}
ans.pop();
}
return 0;
}
d
的范围在2和36之间,用0~10和A
~Z
就够了。使用一个字符串S存储0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
,每一个数实际上是x,在d进制下就是S[x]了。#include<iostream>
using namespace std;
int n,x;
string s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
void change(int num){
if(num/x==0){
cout<<s[num];
return ;
}
change(num/x);
cout<<s[num%x];
}
int main(){
cin>>n>>x;
change(n);
return 0;
}