求a^b的最後三位數表示的整數。
說明:a^b的含義是「a的b次方」
輸入資料報含多個測試例項,每個例項佔一行,由兩個正整數a和b組成(1<=a,b<=10000),如果a=0, b=0,則表示輸入資料的結束,不做處理。
對於每個測試例項,請輸出a^b的最後三位表示的整數,每個輸出佔一行。
2 3 12 6 6789 10000 0 0
8 984 1
由於a的值任意只需大於1,b的值課達到10000,資料非常大,如果我們只是採用暴力演算法的話,不能找到乙個資料型別來儲存這個數,因此,此題可以巧妙轉換。我們知道,要知道乙個冪的後三位,只需要對這個數一直%1000即可,比如1230%1000=230;2323456789%1000=789…這樣我們這個問題就簡單了,只要每次乘以乙個數對1000取餘即可。
#include
#include
using
namespace std;
intfastexponentiation
(int a,
int b,
int mod)
b/=2
; a*
=a;//a不斷平方
a%=mod;
}return answer;
}int
main()
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...