数值的整数次方(快速幂)
问题简述
实现快速幂算法,即 pow(x, n),不使用库函数;
思路
直接连乘 n 次会报超时;
从二分角度理解快速幂
3^20 = (3^2)^10 # 当指数为偶数时,对指数除2取整,底数平方 = (9^2)^5 = (81^2)^2 * 81 # 当指数为奇数时,对指数除2取整,底数平方,同时再乘一个当前的底数(这里是 81) = (6561^2)^1 * 81 = 43046721^0 * 81 * 43046721 = 1 * 81 * 43046721
Last updated