- 题干:题干
- 很简单的一道模拟题…
做了好久…
具体思路
- 对于任意数制,我们都要先将其转化为十进制,再将它转换为想要的进制
- 对于每一数位来说,其十进制的值都是
(当前进制)当前数位-1
- 然后再以同样的方法将十进制表示的数转换成我们想要的进制
- 即: 用十进制减去上述式子,然后输出
代码
#include<bits/stdc++.h>
using namespace std;
long long n,sum,l,b,c,a,x,y,ans[1001],f[3][101];
char ch;
int main(){
cin>>a>>ch>>b;
cin>>ch>>c;
cout<<a<<"<"<<b<<">=";
f[1][1]=f[2][1]=1;
for(int i=2;i<20;i++){
f[1][i]=f[1][i-1]*b;
f[2][i]=f[2][i-1]*c;
}
while(a){
n++;
x+=((a%10)*f[1][n]);
a/=10;
}
for(int i=19;i>=1;i--){
if(x>=f[2][i]){
y=x/f[2][i];
x%=f[2][i];
}
if(y) l=1;
if(l) cout<<y;
y=0;
}
printf("<%d>\n",c);
return 0;
}