ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อประเมินสมการ 2^(2^A) % B
เราจะหาค่าของสมการโดยใช้ฟังก์ชันแบบเรียกซ้ำ มาดูขั้นตอนการแก้ปัญหากัน
-
เขียนฟังก์ชันเรียกซ้ำที่รับ 2 อาร์กิวเมนต์ A และ B
-
ถ้า A เป็น 1 ให้คืนค่า 4 % B เป็น 2^(2^1) % B =4 % B.
-
มิฉะนั้นให้เรียกใช้ฟังก์ชันซ้ำด้วย A-1 และ b
-
ส่งกลับผลลัพธ์^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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น