人見人愛A B

2021-10-04 01:19:05 字數 1010 閱讀 4726

這題和上乙個快速冪取模有什麼區別。。。

題目如下:

problem description

求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

題目叫rightmost digit

我這裡直接把這道題**發出來了,改了幾行**就交上去了

#include 

void

qpmod

(long long a,long long b)

printf

("%lld\n"

,ans);}

int main()

}

不知道這個還能不能偷雞(手動滑稽)~~

但是解析不能就這麼水了:

這裡用了一次二分法:(一定要用c++交答案!!!)

講一下原理:(這是個求冪的方法)

當你所求的目標為a^b 的後三位時,我們可以不必計算a^b, 比如計算5^31 ,那麼原式=5^1 * 5^2 * 5^4 5^8 * 5^16 =5(2^0 + 2^1 + 2^2 + 2^3 + 2^4)我們只需要將b拆解成以2為底的等比數列的和即可,你可以將b看成乙個二進位制數的思想,每次利用b%2和b/=2來對其末位進行數字拆解,並將每一種拆解下得到的結果進行累乘,當b拆解完畢之後便可以得到答案。

**如下:

#include  

int main()

printf

("%d\n"

,ans);}

return0;

}

人見人愛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...