狼崖雪 2010-09-08 09:22:00
点我顶贴
收藏
删除
老规矩,先贴程序(只是礼貌,没必要读我的程序哪)……
program wolf;
var
jz:array[0..10] of integer=(1,2,4,8,16,32,64,128,256,512,1024);
qw,sc:array[0..10] of longint;
zc,k,j,n,i,max:longint;
begin
readln(k,n);
zc:=0;
repeat
inc(zc);
for i:= 0 to 10 do
if jz[i]>=n then break;
if jz[i]=n
then
begin
n:=n-jz[i];
qw[zc]:=i;
end
else
begin
n:=n-jz[i-1];
qw[zc]:=i-1;
end;
until n=0;
for i:= 1 to zc do
begin
max:=1;
for j:= 1 to qw[i] do
begin
max:=max*k;
end;
sc[i]:=max;
end;
max:=0;
for i:= 1 to zc do
max:=max+sc[i];
writeln(max);
end.
一遍AC,一开始倍儿高兴,可后来发现,我算了一下,似乎从K=12开始,N=1000左右的数据在用longint运算时就会出现215错误。。。。。。(溢出错误吧……)
看了大家的讨论,知道是数据的错误,但我实在是没看明白……囧RZ……求大牛赐教……