題目:計算A^B的后三位。
分析:數論,分治。利用mod的性質和分治快速模冪算法求解。
說明:╮(╯▽╰)╭。
#include<iostream>
#include<cstdlib>
using namespace std;
int fpow(int a, int n, int mod)
{
if (n == 1) {
return a%mod;
}
int v = fpow(a, n/2, mod);
if (n%2) {
return ((v*v)%mod*a)%mod;
}else {
return (v*v)%mod;
}
}
int main()
{
int a, b;
while (cin >> a >> b && a+b) {
cout << fpow(a, b, 1000) << endl;
}
return 0;
}