pk572820634 2013-11-06 03:39:58
点我顶贴
收藏
删除
var
k,n:longint;
ans,num:longint;
begin
readln(k,n);
num:=1;
while n>0 do
begin
ans:=ans+num*(n mod 2);
n:=n div 2;
num:=num*k;
end;
writeln(ans);
end.
最短FP题解~还是自己想的~虽然我不是大犇~
其实很简单:k^n>0(n∈N);
题目的意思就是第k项的存在与不存在的组合(0:不存在;1:存在);
题目的意思:3的:0次幂1,1次幂1,0次幂、1次幂1,2次幂1……
翻译成二进制就是:1↑, ↑10, ↑11, ↑100, 101,110,111,1000……
就是这样~n也可以翻译成为2进制数,以各次幂存在于不存在求和,输出就是了~
另:第九个点必须为longint才能过,int64不可以........