ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อประเมินสมการ 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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น