做到了一道求等比数列第n项对10000000007取余的题目,了解了这个算法。
PowerMod: 求a^b%c
具体实现:
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
long long PowerMod(int a,int b,int c)
{
long long ans=1;
long long k=a%c;//a对c取模
while(b>0)
{
if(b%2==1)
{
ans=(ans*k)%c;
} //b是奇数
b/=2; //降幂
k=(k*k)%c;
}
return ans;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
long long ans=PowerMod(n,n,10); //(n^n)%10
printf("%d\n",ans);
}
return 0;
}

617

被折叠的 条评论
为什么被折叠?



