ต่อไปเราจะมาดูวิธีการเช็คว่าเลขหารด้วย 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