思路
- 其实排在第n个的数是n二进制下,为1的地方j被加上k^j
- 例如3的第3个数,3=11,就是3^1+ 3^0
参考代码
#include<iostream>
using namespace std;
const int N = 1010;
long long int p[N];
int main()
{
int k,n;
cin>>k>>n;
p[0]=1;
for(int i=1;i<=n;++i){
p[i]=p[i-1]*k;
}
int cot=n;
long long int ans=0;
for(int i=0;i<32;++i){
if((cot>>i)&1){
ans+=p[i];
}
}
cout<<ans<<endl;
return 0;
}