ต่อไปเราจะมาดูวิธีการเช็คว่าเลขหารด้วย 11 ลงตัวหรือไม่ ในกรณีนี้จำนวนเป็นจำนวนที่มาก ดังนั้นเราจึงใส่ตัวเลขเป็นสตริง
ในการตรวจสอบว่าตัวเลขหารด้วย 11 ลงตัวหรือไม่ ถ้าผลรวมของค่าตำแหน่งคี่และผลรวมของค่าตำแหน่งคู่เท่ากัน ตัวเลขจะถูกหารด้วย 11 ลงตัว
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
bool isDiv11(string num){
int n = num.length();
long odd_sum = 0, even_sum = 0;
for(int i = 0; i < n; i++){
if(i % 2 == 0){
odd_sum += num[i] - '0';
} else {
even_sum += num[i] - '0';
}
}
if(odd_sum == even_sum)
return true;
return false;
}
int main() {
string num = "1234567589333892";
if(isDiv11(num)){
cout << "Divisible";
} else {
cout << "Not Divisible";
}
} ผลลัพธ์
Divisible