Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C สำหรับส่วนต่างระหว่างผลรวมของเลขคี่และเลขคู่?


สมมติว่าเรามีจำนวนเต็มยาวหนึ่งจำนวน เราต้องค้นหาว่าผลต่างระหว่างผลรวมของหลักตำแหน่งคี่กับผลรวมของตำแหน่งเลขคู่เป็น 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