สมมติว่าเรามีจำนวนเต็มยาวหนึ่งจำนวน เราต้องค้นหาว่าผลต่างระหว่างผลรวมของหลักตำแหน่งคี่กับผลรวมของตำแหน่งเลขคู่เป็น 0 หรือไม่ ตำแหน่งเริ่มต้นจาก 0 (ซ้ายสุด)
ตัวอย่างเช่น สมมติว่าตัวเลขคือ 156486 ผลรวมของตำแหน่งคี่คือ (5 + 4 + 6) =15 และผลรวมของตำแหน่งคู่คือ (1 + 6 + 8) =15 ดังนั้นจึงเหมือนกัน
เพื่อแก้ปัญหานี้ เราสามารถใช้สองวิธีที่แตกต่างกัน วิธีแรกคือการเดินทางผ่านแบบฟอร์มเริ่มจนจบและรับผลรวมโดยสลับตำแหน่งจากนั้นจึงได้ส่วนต่าง วิธีถัดไปนั้นง่ายกว่าและมีประสิทธิภาพ หากตัวเลขหารด้วย 11 ลงตัว ผลต่างต้องเป็น 0 ดังนั้นเราสามารถพูดได้ว่าถ้าผลรวมของเลขตำแหน่งคี่และผลรวมของตำแหน่งเลขคู่เท่ากัน ตัวเลขนั้นจะถูกหารด้วย 11
อัลกอริทึม
isDiffZero(n)
begin if n is divisible by 11, then return 1 else return 0 end if end
ตัวอย่าง
#include<stdio.h> long isDiffZero(int n) { if(n % 11 == 0){ return 1; } else { return 0; } } main() { int n; printf("Enter a number: "); scanf("%d", &n); if(isDiffZero(n)) { printf("Difference is zero"); } else { printf("Difference is non zero"); } }
ผลลัพธ์
Enter a number: 156486 Difference is zero