สมมติมีจำนวนเต็มยาว ต้องตรวจสอบว่าความต่างระหว่างผลรวมหลักตำแหน่งคี่ และผลรวมหลักตำแหน่งคู่ เป็น 0 หรือไม่ ตำแหน่งเริ่มจาก 0 (ซ้ายสุด)
ตัวอย่าง: 156486 ผลรวมตำแหน่งคี่ (5+4+6)=15 ผลรวมตำแหน่งคู่ (1+6+8)=15 เท่ากัน
วิธีแก้ 2 แบบ: 1) วนลูปคำนวณผลรวมสลับกัน 2) วิธีง่ายกว่า ถ้าตัวเลขหาร 11 ลงตัว ความต่างจะเป็น 0 กล่าวคือ ถ้าผลรวมตำแหน่งคี่และคู่เท่ากัน ตัวเลขจะหาร 11 ลงตัว
อัลกอริทึม
isDiffZero(n)
begin
if n is divisible by 11, then
return 1
else
return 0
end if
end
ตัวอย่างโค้ด (C)
#include <stdio.h>
long isDiffZero(int n) {
if (n % 11 == 0)
return 1;
else
return 0;
}
int 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