A的B次幂

来源:互联网 发布:mac如何更新软件 编辑:程序博客网 时间:2024/06/05 11:18

给出两个正整数A和B

请输出A的B次幂

结果可能很大,请对1000000007求模

A和B,两个整数均不大于10^18

A的B次幂对1000000007求模

复制
2 2
4
复制
2 10
1024


这应该是门槛题里面最难的一道题,因为它真正地运用了算法——快速幂

写代码时一定要记得每一次乘都要对1000000007取余,否则就算你是long long也会爆掉


#include<stdio.h>long long haha(long long a,long long b){  long long r=1,base=a;  while(b){    if(b&1)    r=r*base%1000000007;    base=base*base%1000000007;    b>>=1;  }  return r%1000000007;}int main(){  long long a,b;  scanf("%lld%lld",&a,&b);  printf("%lld",haha(a,b));}



阅读全文
0 1
原创粉丝点击