1. 程式人生 > >快速求解冪運算-巧用二進位制的方法

快速求解冪運算-巧用二進位制的方法

1.我們需要求解x ^ n 問題,那麼可以把n轉化為二進位制來進行求解

例如求解2 ^ 10 那麼10轉化為二進位制數字為1010 對應的位上分別為 8 4 2 1

2 ^ 10 可以轉化為 2 ^ 8 * 2 ^ 2

2.具體的程式碼如下:

import java.util.Scanner; public class 快速冪運算_利用二進位制來巧解{     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         long x = sc.nextLong();         long n = sc.nextLong();         long res = ext(x,n);         System.out.println(res);     }

    private static long ext(long x, long n) {         long pingFangShu = x;         long result = 1;         while(n!=0){             //遇1累乘現在的冪             if((n & 1) == 1){                 result *= pingFangShu;             }             //每移位一次冪累乘方一次             pingFangShu = pingFangShu * pingFangShu;             //右移一位             n >>= 1;         }         return result;     } }