題目:
輸入b,p,k的值,求b^p mod k 的值,其中b,p,k*k都是長整形。
這道題的難點是這幾個數都是longint,如果硬算一定會超時。但a*b mod k=(a mod k)*(b mod k) mod k.
我們把它轉二進位制,a[i]=1 則*b。
**如下:
var a:array[0..2501] of integer;
b,p,k,t,r,l,i:longint;
begin
read(b,p,k);
t:=p;
while t<>0 do
begin
inc(l);
a[l]:=t mod 2;
t:=t div 2;
end;
r:=1;
for i:=l downto 1 do
begin
t:=r*r mod k;
if a[i]=1 then r:=b mod k*t mod k else r:=t;
end;
write(b,'^',p,' mod ',k,'=',r);
end.//未經過允許,嚴禁copy標
取餘運算規則
今天遇到乙個在as3,js裡面顯示int64 問題。js,as只有number型別,最大能支援的整數是 2 53 及 9007199254740992 到9007199254740992 當數字超過限度時,只能直接顯示對應的字串,無法用number來轉化。網上找了乙個開源的庫,將int64分成2個3...
(分治)取餘運算
題目描述 輸入b,p,k的值,求b p mod k的值。其中b,p,k k為長整型數。輸入 輸入b,p,k的值。輸出 求b p mod k的值。樣例輸入 2 10 9 樣例輸出 2 10 mod 9 7 餘數公式 b的p次方可以拆著來算,遞推公式 p 0 1 p 2 0 f p f p 2 f p ...
1497 取餘運算
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解輸入b,p,k的值,程式設計計算bp mod k的值。其中的b,p,k k為長整型數 2 31範圍內 輸入描述 input description b p k 輸出描述 output description 輸出b ...