算法 - 快速幂算法
生活随笔
收集整理的這篇文章主要介紹了
算法 - 快速幂算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考博客
https://blog.csdn.net/qq_19782019/article/details/85621386
簡單來說就是進行二分,底數和指數,例如 2的8次方,循環一次變成 2*2的4次方,直到冪 = 0;(注意要區分奇偶),奇數的時候假如 2的7次方 就變成6+1,把 2的一次方 先附給result即可
拿一道劍指offer的例題舉例子:
題目描述 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 保證base和exponent不同時為0 public class Solution {public static double Power(double base, int exponent) {double result = 1.0;int exponentN = exponent < 0 ? - exponent : exponent; //把冪取絕對值,如果冪是負數就輸出1/resultwhile(exponentN > 0){if((exponentN & 1) == 1){result = result * base; //把減去的一個base賦給結果,相乘}exponentN /= 2;base *= base;}return exponent < 0 ? 1/result : result;} }總結
以上是生活随笔為你收集整理的算法 - 快速幂算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数位dp模板 最高位最低位_无纸化办公入
- 下一篇: 字节流转化为文件流_字节流转成字符串之后