求a^b的最後三位數表示的整數。
說明:a^b的含義是「a的b次方」
input
輸入資料報含多個測試例項,每個例項佔一行,由兩個正整數a和b組成(1<=a,b<=10000),如果a=0, b=0,則表示輸入資料的結束,不做處理。
output
對於每個測試例項,請輸出a^b的最後三位表示的整數,每個輸出佔一行。
sample input
2 312 6
6789 10000
0 0sample output
8984
1
#include
#include
#include
intmain()
return0;
}
這個求a的b次方後3位數的題。由於資料可以出的很大,我一點辦法也沒有。
雖然資料很大,但在每次運算時使用的「工具資料」,即使用「某種公式」,這個「某種公式」公式的係數也很大。那麼就可以減少運算量。
這也是考驗學生們對演算法的尋找和設計能力吧。
尤其是第一位博主的解析,道清了每次使用(餘數*底數)%1000,取餘的原理。求後3位就對1000取餘。求後4為就對10000取餘。
由乘法豎式原理,結果的後3位數總是由一系列加法運算得來的。經觀察可得,每次用1000取餘得到的後3位數並沒有丟失掉我們需要使用的資料的性質。
以上**參考一下兩位博主:
人見人愛A B
最近做了幾個acm的題,感覺真挺經典的。分享乙個覺得有點意思的,呵呵 problem description 求a b 的最後三位數表示的整數。說明 a b 的含義是 a的 b次方 input 輸入資料報含多個測試例項,每個例項佔一行,由兩個正整數a和 b組成 1 a,b 10000 如果 a 0,...
人見人愛A B
time limit 1000ms memory limit 32768k 有疑問?點這裡 求a b的最後三位數表示的整數。說明 a b的含義是 a的b次方 輸入資料報含多個測試例項,每個例項佔一行,由兩個正整數a和b組成 1 a,b 10000 如果a 0,b 0,則表示輸入資料的結束,不做處理。...
人見人愛A B
題目 求a b的最後三位數表示的整數。說明 a b的含義是 a的b次方 題意 分析 這是數論裡面的模運算定理,模運算在加減乘三運算中滿足分配律,可以任意分配,注意除法不可以用分配律,在遇到除法時要用群概念中的逆元來變成乘法。此外,本題要用快速冪來優化。題解 include include inclu...