二刷**二分冪/快速冪
考慮要不要用
ll
?不需要!
10000*10000
在int
的範圍之內;貌似二分求冪好像用的最多的就是求餘數了。。。//二分冪題
#include
"bits/stdc++.h"
using
namespace std;
int a;
int b;
intbinarypow
(int a,
int b,
int m)
else
else}}
intmain()
int ans =
binarypow
(a,b,
1000);
printf
("%d\n"
,ans);}
return0;
}
對於判別奇偶數可以使用
&
運算子!上面的是遞迴的寫法,其實還有迭代的寫法,也就是遞推;
注意每次函式返回時都要
%m
這樣才能減小規模!建議還是使用
long long
來儲存快速冪的結果。#include
#include
using
namespace std;
typedef
long
long ll;
//快速冪模板建議使用long long
ll binarypow
(ll a,ll b,ll m)
else
else}}
intmain()
//求快速冪
printf
("%lld\n"
,binarypow
(a,b,
1000))
;}return0;
}
人見人愛A B快速冪
求a b的最後三位數表示的整數。說明 a b的含義是 a的b次方 input 輸入資料報含多個測試例項,每個例項佔一行,由兩個正整數a和b組成 1 a,b 10000 如果a 0,b 0,則表示輸入資料的結束,不做處理。output 對於每個測試例項,請輸出a b的最後三位表示的整數,每個輸出佔一行...
人見人愛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,則表示輸入資料的結束,不做處理。...