快速幂;快速幂取模

xiaoxiao2021-02-28  41

当指数大于1时; 若为 偶数 则将指数除以2,底数平方

若为 奇数 则先提出一个为底数的系数(可直接把该系数乘进ans中),所以指数减1,然后再按照 偶数 的办法做

不断迭代下去,当指数为1时,则直接得出答案 若要取模 则每一步运算都取模即可

#include<stdio.h>   int modpow(int a, int b, int c) {   int ans = 1; while(b>0) { if (b & 1) ans = ans * a% c; a = a * a % c; b >>= 1; //等价于b=b/2; } return ans; } 一个简单的快速幂,研究了一下午,,,心累,,,不过很有成就感!!!
转载请注明原文地址: https://www.6miu.com/read-2623238.html

最新回复(0)