งานของคุณคือการคำนวณการยกกำลังช้าด้วยขั้นตอนต่อไปนี้:
ให้สองอินพุต (ในตัวอย่างนี้ 4 และ 8) คุณต้องคำนวณการยกกำลังโดยคำนวณสมการทีละบิต คุณจะทำได้4^8
มีค่าฐานที่มากกว่า (4) และเลขชี้กำลังขนาดเล็ก (8) คุณสามารถทำได้โดยใช้การยกกำลังและการหาร คุณสามารถแบ่งสัญลักษณ์โดยค่าX (ให้Xเป็นตัวหารที่สำคัญของสัญลักษณ์) และทำให้ค่าฐาน ( B ) B^X
ลง ตัวอย่างเช่นคุณสามารถ:
4^8 = (4 ^ 2)^(8 / 2) = 16^4
ฉันได้แทนที่Xด้วย 2 ในสมการก่อนหน้า
คุณสามารถ 'ลดความซับซ้อน' 16^4
เพิ่มเติมอีกครั้งด้วยX = 2
:
16^4 = (16 ^ 2)^(4 / 2) = 256^2
จากนั้นในที่สุดก็คำนวณตัวเลข (อีกครั้งX = 2
):
256^2 = (256 ^ 2)^(2 / 2) = 65536^1 = 65536
ดังนั้น,
4^8 = 16^4 = 256^2 = 65536
นี่คือผลลัพธ์ที่คุณควรให้ =
คั่นเอาท์พุทที่มีความยืดหยุ่นเล็กน้อยตัวอย่างเช่นคุณสามารถแยกสมการโดยการขึ้นบรรทัดใหม่หรือช่องว่างแทน หรือคุณอาจใส่ไว้ในรายการ (แต่คุณต้องไม่ใช้ตัวเลขหรือ^
ตัวอักษรเป็นตัวคั่น)
ในขณะที่มาร์ตินเอนเดอร์ชี้ให้เห็น^
ความยืดหยุ่นก็เช่นกัน ตัวอย่างเช่นคุณอาจจะใช้[A, B]
หรือA**B
แทนA^B
ในการส่งออก
Xอาจเป็นเพียงไพรม์ซึ่งหมายความว่าคุณไม่สามารถใช้X = 8
เพื่อแก้ไขปัญหาได้โดยตรงและค่าของXจะเป็นเพียงปัจจัยหลักของอินพุตที่สอง (เลขชี้กำลัง)
ตัวอย่าง:
(input) -> (output)
4^8 -> 4^8=16^4=256^2=65536
5^11 -> 5^11=48828125
2^15 -> 2^15=32^3=32768 (2^15=8^5=32768 is also a valid output)
โปรดทราบว่ารูปแบบการป้อนข้อมูลมีความยืดหยุ่น (เช่นคุณอาจใช้A \n B
หรือA B
แทนที่จะA^B
เห็นได้ชัดว่านี่จะไม่เป็นปัญหาหากคุณเขียนฟังก์ชั่นโดยใช้อาร์กิวเมนต์สองตัว
ในตัวอย่างที่สองเราตรงไปที่การคำนวณเนื่องจาก11
เป็นส่วนสำคัญและเราไม่สามารถทำตามขั้นตอนเพิ่มเติมได้
คุณอาจจะเขียนโปรแกรมหรือฟังก์ชั่นเพื่อแก้ปัญหานี้และคุณอาจพิมพ์หรือคืนค่าตามลำดับ
เช่นนี้เป็นรหัสกอล์ฟรหัสที่สั้นที่สุดชนะ!
x^1
?
32^3
และ8^15
ไม่ใช่ 512 เช่นกัน