หาหลักสองหลักสุดท้ายของ 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