題目描述
輸入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/2)
p/2==1 f(p)=f(p/2)*f(p/2)*f(1)
f(x) 意思是b的x次方
if(p==0) return
1; ll tmp=f(b,p/2,k);
ll ans=((tmp%k)*(tmp%k))%k;
if(p/2==1) ans=(ans*(b%k))%k;//如果等於1,拆開不了一半,還得乘一次b
return ans;
#include
#include
#include
using namespace std;
long int mod_fenzhi(long int b,long int p,long int k)
if(p==2)
if(p%2==0)
if(p%2==1)
}int main()
return
0;}
取餘運算規則
今天遇到乙個在as3,js裡面顯示int64 問題。js,as只有number型別,最大能支援的整數是 2 53 及 9007199254740992 到9007199254740992 當數字超過限度時,只能直接顯示對應的字串,無法用number來轉化。網上找了乙個開源的庫,將int64分成2個3...
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 ...
python模運算求餘 取模運算和取餘運算
取模運算和取餘運算 取模運算 modulo operation 和取餘運算 complementation 兩個概念有重疊的部分但又不完全一致。主要的區別在於對負整數進行除法運算時操作不同。取模主要是用於 計算機術語中。取餘則更多是數學概念。模運算在數論和程式設計中 都有著廣泛的應用,從奇偶數的判別...