人見人愛A B

2021-09-24 18:00:49 字數 840 閱讀 6400

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...