秋天点点 2008-11-22 08:22:00
点我顶贴
收藏
删除
program lx;
var a:array[0..5000] of integer;
s,i,j,m,n,k,t:integer;
max:int64;
function pf(n,i:integer):longint;
var j:integer;
begin
pf:=1;
for j:=1 to i do
pf:=pf*n;
end;
begin
read(t,n);
s:=0;
repeat
s:=s+1;
a[s-1]:=n mod 2;
n:=n div 2;
until t<=0;
for i:=0 to s-1 do
if a[i]=1 then max:=max+pf(t,i);
writeln(max);
end.
我的程序自己测是正确的,在这上边就不对了
都来说说是什么错误 !!!
真牛
#1 飞雪天涯@2008-11-22 08:22:00
9630
回复
删除
#include<iostream>
using namespace std;
int main (void)
{
int result=0,k,n,premire=1;
cin>>k>>n;
while (n){
result+=premire*(n%2);
premire*=k;
n/=2;
}
cout<<result;
//while(1);
return 0;
}