快速求解冪運算-巧用二進位制的方法
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; } }