1:
//注意事先请#define int long long,防止数据溢出
int f(int A,int B) { if(B==0) return 1; else if(B%2==0) { //如果B是偶数,则将其分成相等的两份 //于是可以先算出一份的结果,然后再乘上自身即可 //这样的写的话,递归调用的少了许多 int res=f(A,(B>>1)); return res*res%mod; } else { //与上同理,分成大小相差为1的两份 int res=f(A,(B>>1)); return A*res%mod*res%mod; } }
2:用while循环来写,更简单
3:如果是下面这样写,存在冗余。
int f(int a,int b) { if(b==0)return 1; if(b==1) return a; if(b%2==0) return f(a,b>>1)*f(a,b>>1)%mod; else return a*f(a,b>>1)%mod*f(a,b>>1)%mod; }
标签:return,int,写法,else,res,res%,快速,mod From: https://www.cnblogs.com/cutemush/p/16758412.html