快速幂
快速幂
似乎没什么好写的,直接看代码部分
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long a,b,m,ans=1;
long long power(long long a,long long b)
{
while(b!=0)
{
if(b%2==1)
ans=(ans*a)%m;
a=(a*a)%m;
b/=2;
}
ans%=m;
return ans;
}
int main()
{
cin>>a>>b>>m;
cout<<power(a,b);
}
就完了?
还是不要这么水了,再来上几道例题
「一本通 6.1 练习 3」越狱题目描述
原题来自:HNOI 2008
监狱有连续编号为1到n的n个房间,每个房间关押一个犯人。有 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。
输入格式
输入两个整数n和m。
输出格式
可能越狱的状态数,对100003取余。
样例
输入
2 3
输出
6
就不分析题了。