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

หาหลักสองหลักสุดท้ายของ 2^n ใน C++

หาหลักสองหลักสุดท้ายของ 2 ยกกำลัง n

ตัวอย่าง: n = 12 → 2¹² = 4096 → 96

วิธีแก้ปัญหา

วิธีที่ 1: คำนวณ 2^n แล้ว mod 100 (ไม่เหมาะกับ n ใหญ่เพราะ overflow)

วิธีที่ 2: เก็บแค่ 2 หลักสุดท้ายในแต่ละขั้นตอน (mod 100 ทุกครั้งที่คูณ 2)

powerVal = (powerVal * 2) % 100

ตัวอย่างโค้ด C++ (วิธีที่ 2)

#include <iostream>
using namespace std;

int findLastDigit(int N) {
    int powerVal = 1;
    for (int i = 0; i < N; i++) {
        powerVal = (powerVal * 2) % 100;
    }
    return powerVal;
}

int main() {
    int N = 15;
    cout << "The last two digits of 2^" << N << " is " << findLastDigit(N);
    return 0;
}

Output

The last two digits of 2^15 is 68