โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)คำนวณ base ยกกำลัง exponent ด้วยวิธีเวียนเกิด: x⁰ = 1 และ xⁿ = (x^(n/2))² เมื่อ n เป็นเลขคู่ หรือ x × (x^((n−1)/2))² เมื่อ n เป็นเลขคี่ วิธีนี้ใช้การคูณน้อยกว่าการวนลูปปกติมาก
ให้เขียนฟังก์ชัน recursive_power(base, exponent)
อินพุต
base: ฐาน exponent: เลขชี้กำลัง (ศูนย์หรือจำนวนเต็มบวก)
เอาต์พุต
คืนค่าผลลัพธ์ของ base ยกกำลัง exponent
เงื่อนไข
-10 ≤ base ≤ 10; 0 ≤ exponent ≤ 18
ตัวอย่าง
อินพุต:
base = 3
exponent = 5
ผลลัพธ์ที่คาดหวัง:
expected = 243
อินพุต:
long long base = 3;
long long exponent = 5;
ผลลัพธ์ที่คาดหวัง:
long long expected = 243;
อินพุต:
long base = 3;
long exponent = 5;
ผลลัพธ์ที่คาดหวัง:
long expected = 243;
คำอธิบาย
3⁵ = 3 × (3²)² = 3 × 81 = 243
อินพุต:
base = 7
exponent = 0
ผลลัพธ์ที่คาดหวัง:
expected = 1
อินพุต:
long long base = 7;
long long exponent = 0;
ผลลัพธ์ที่คาดหวัง:
long long expected = 1;
อินพุต:
long base = 7;
long exponent = 0;
ผลลัพธ์ที่คาดหวัง:
long expected = 1;
คำอธิบาย
กรณีฐาน: จำนวนใด ๆ ยกกำลัง 0 จะได้ 1 เสมอ
แหล่งอ้างอิง
โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน