typedef long long LLLL poww(LL a,LL n){ LL ans=1,base=a; while(n!=0) { if(n&1) ans*=base; base*=base; n>>=1; } return ans;}代码解释:
1.首先定义一个long long 的数据类型(防止越界);2.然后是赋初值;3.一个while循环,假如n为0了,退出循环,返回ans,否则继续循环;4.if判断,取n二进制的末位,如果不为0,就令ans*=base,否则什么也不做;5.base*=base的目的是利用上一次计算出来的结果;6.最后一步是n>>=1,它的意思是将n的二进制数右移一位,并且将结果重新赋给变量n。
新闻热点
疑难解答