#1 sylaer@2015-06-23 02:49:15
33311
回复
删除
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
unsigned int k,N;
vector<unsigned int> v;
v.resize(11);
for (unsigned int i=0;i<11;i++)
{
v[i] = ::pow(2,i);
}
while (cin>>k>>N)
{
unsigned int sum = N;
vector<unsigned int> ans;
while(sum>0)
{
for (unsigned int i=10;i>0;i--)
{
if(v[i]>sum && v[i-1]<=sum){
sum -= v[i-1];
ans.push_back(i);
}
}
}
unsigned int rst = 0;
for (unsigned int i=0 ; i < ans.size();i++)
{
rst+=::pow(k,ans[i]-1);
}
cout<<rst<<endl;
}
return 0;
}