讨论 / C++题解
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;

}

查看更多回复
提交回复