แนวคิดหลักก็คือ
เมื่อ n เป็นจำนวนคู่ a^n = a^n/2 × a^n/2
เมื่อ n เป็นจำนวนคี่ a^n = a^(n-1)/2 × a^(n-1)/2 × a
รหัสมีดังนี้:
คัดลอกรหัสรหัส ดังต่อไปนี้:
พลังคลาสสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
System.out.println (พลังงาน (5.5,5));
-
กำลังสองคงที่ส่วนตัว (ฐานคู่, เลขชี้กำลัง int) {
ถ้า (เลขชี้กำลัง == 0)
กลับ 1;
ถ้า (เลขชี้กำลัง == 1)
ฐานส่งคืน;
ผลลัพธ์สองเท่า = กำลัง (ฐาน, เลขชี้กำลัง >> 1);
ผลลัพธ์ *= ผลลัพธ์;
ถ้า ((เลขชี้กำลัง & 0x1) == 1)
ผลลัพธ์ *= ฐาน;
ส่งคืนผลลัพธ์;
-
-
โค้ดยังใช้การดำเนินการเลื่อนไปทางขวาเพื่อแทนที่การหารด้วย 2 และใช้การดำเนินการระดับบิต AND เพื่อแทนที่ส่วนที่เหลือเพื่อกำหนดความเท่าเทียมกัน ซึ่งทำให้อัลกอริทึมมีประสิทธิภาพมากขึ้นมาก