asfeixue 2010-07-24 19:00:00
点我顶贴
收藏
删除
#include <iostream>
using namespace std;
int main()
{
int k,N;
cin>>k>>N;
int n[10]={0};
int m=0;
for(m=0;N!=0;N=N/2,m++) //转换为2进制保存
n[m]=N%2;
long int a[10]={0};
for(int i=0;i<10;i++) //因为最多取9次幂,所以保存0到9的各次幂的值
{
long int max=1;
for(int j=0;j<i;j++)
max*=k;
a[i]=max;
}
long int max=0;
for(int i=0;i<m;i++)
if(n[i]==1)
max+=a[i];
cout<<max<<endl;
return 0;
}
