ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อประเมินสมการ 2^(2^A) % B
เราจะหาค่าของสมการโดยใช้ฟังก์ชัน recursive มาดูขั้นตอนในการแก้ปัญหา
- เขียนฟังก์ชัน recursive ที่รับ 2 อาร์กิวเมนต์ A และ B
- ถ้า A เป็น 1 ให้คืนค่า 4 % B เพราะ 2^(2^1) % B = 4 % B
- มิฉะนั้น เรียกฟังก์ชันซ้ำด้วย A-1 และ B
- คืนค่า result^2 % B
- พิมพ์คำตอบ
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
long long solveTheEquation(long long A, long long B) {
// 2^(2^1) % B = 4 % B
if (A == 1) {
return (4 % B);
} else {
long long result = solveTheEquation(A - 1, B);
return result * result % B;
}
}
int main() {
long long A = 37, B = 467;
cout << solveTheEquation(A, B) << endl;
return 0;
}
ผลลัพธ์
ถ้าคุณรันโค้ดด้านบน คุณจะได้ผลลัพธ์ดังนี้
113
สรุป
หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น