二进制枚举:通过观察我们可以发现第几个数,实际上就是将该数转成二进制时对应的底为2的和,只需要将底换成k,再求和,即为我们要求的答案
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int k,n;
cin>>k>>n;
int t=n;
string s;
while(t){
s=s+to_string(t%2);
t/=2;
}
int res=0;
for(int i=0;i<s.size();i++)
if(s[i]=='1')
res+=pow(k,i);
cout<<res<<endl;
return 0;
}