proble description:求a^b的最後三位數表示的整數。
說明:a^b的含義是「a的b次方」
思路:關於次方,首先想到的就是pow()函式,這函式需要包含標頭檔案
#include
這個標頭檔案中還包含了一些數學計算公式fabs(),用它來求浮點數的絕對值。接下來的思路是通過類似水仙花數中的方法來求最後三位數,但是這個方法需要事先知道數的位數,顯然是不可行的。經過一番思考,我發現可以通過對數進行%1000運算,這樣不管數字的位數都可以得到後三位。
ps:think about problems for a while,and don』t look over discuss frequnetly
在計算不太大的數字時能得出答案,但需要計算大資料時無法得到答案,需要改寫演算法。首先我聯想到的是能不能改寫資料型別,檢視了一下discuss只能改寫演算法。從discuss中得到了幾條資訊,找到了點靈感,我可以只用後三位不斷的相乘,這樣就不用擔心越界。
最初版本,只能通過小數案例,如下:
#include #include int main()
}
改進版本如下:
#include #include int main(){
int a,b,c,i;
while(~scanf("%d %d", &a,&b)){
if(a==0&&b==0)
break;
c=1;
for(i=0;i這些題目**量並不大,重要的是思想。有些題目可以通過計算機的運算速度求出,但有些卻超過了計算機的運算上限,這就需要通過一些邏輯上的精簡來求解。或許這精簡的背後就是演算法。
人見人愛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...