Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หา 2^(2^A) % B ใน C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อประเมินสมการ 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

สรุป

หากคุณมีคำถามในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น