人見人愛A B HDOJ2035

2021-08-14 14:21:35 字數 636 閱讀 5624

題目鏈結

二分冪:13 = 1 1 0 1

所以a 13=

a8∗a

4∗a1

a^ = a^8 * a^4 * a^1

a13=a8

∗a4∗

a1認真分析一下弄懂了就不難,我也是看了很久才稍微明白點。其實很早就知道快速冪模,但是只是記住了模板沒有記住演算法的推導,過一段時間忘記了模板又不會做了。這個故事說明乙個道理:程式設計沒有捷徑。

#include

typedef

long

long ll;

ll binarypow

(ll a,ll b,ll m)

a = a * a % m;

//a始終在前面結果的基礎上平方,所以a的權值實際上是1,2,4,8等等次方

b=b >>1;

//b每次都右移一位,相當於除以2主要是轉變為b的二進位制形式

}//為什麼是右移除到0,而不是左移,因為a的1次方剛好跟b的二進位制形式的最低位對應,

//然後a的2次方 與b的次低位對應

return ans;

}int

main()

return0;

}

HDU 2035 人見人愛A B

法一 每次取餘數 include includeint main system pause return 0 法二 其實直接每次取餘數就能過的 第一遍就是用這種方法過的 這次算是用二分加速過的吧 就是每次都講底數平方 指數除以2 要是偶數沒問題 要是奇數就在將多餘的那部成到sum中 初始值為1 不停...

HDOJ 2035 人見人愛A B

problem description 求a b的最後三位數表示的整數。說明 a b的含義是 a的b次方 input 輸入資料報含多個測試例項,每個例項佔一行,由兩個正整數a和b組成 1 a,b 10000 如果a 0,b 0,則表示輸入資料的結束,不做處理。output 對於每個測試例項,請輸出a...

HDU 2035 人見人愛A B

problem description 求a b的最後三位數表示的整數。說明 a b的含義是 a的b次方 input 輸入資料報含多個測試例項,每個例項佔一行,由兩個正整數a和b組成 1 a,b 10000 如果a 0,b 0,則表示輸入資料的結束,不做處理。output 對於每個測試例項,請輸出a...