看了题解知道这题是用短除法了,但是为什么我代码点2WA了哇
#include<bits/stdc++.h>
using namespace std;
#define int long long
int mi[50];
int x,m;
char pt[7]={0,'A','B','C','D','F','E'};
int ans[50];
int hi;
int po(int i){
return mi[i];
}
void print(){
for(int i=hi;i>=1;i--){
if(ans[i]<=10)
cout<<ans[i];
else
cout<<pt[ans[i]%10];
}
cout<<"\n";
}
void f(int i){
if(x>po(i)*(m-1))
f(i+1);
else{
hi=i;
}
int n=x/po(i);
ans[i]=n;
x-=po(i)*n;
}
signed main(){
cin>>x>>m;
memset(ans,-1,sizeof(ans));
int s=1;
for(int i=1;s<=pow(10,9);i++){
mi[i]=s;
s*=m;
}
f(1);
print();
}