C语言函数实现快速幂运算 - powr(m, n)
double powr(int m, int n){ double res = 1.0; int flag = 0; //记录n的正负号 if(n < 0){ n = -n; flag = 1; } while(n){ if(n & 1) res *= m; //如果n的二进制最低位为1,乘上m m *= m; //m自乘 n >>= 1; //n右移一位,相当于除以2 } if(flag) return 1.0/res; //如果n为负数,返回倒数 return res; }
原文地址: https://www.cveoy.top/t/topic/nSdZ 著作权归作者所有。请勿转载和采集!