Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình cho sự khác biệt giữa tổng của các chữ số lẻ và chẵn?

Giả sử chúng ta có một số nguyên dài. Chúng ta phải tìm xem sự khác biệt giữa tổng các chữ số ở vị trí lẻ và tổng các chữ số ở vị trí chẵn có bằng 0 hay không. Các vị trí bắt đầu từ 0 (ngoài cùng bên trái).

Ví dụ:giả sử một số là 156486. Tổng vị trí lẻ là (5 + 4 + 6) =15 và tổng vị trí chẵn là (1 + 6 + 8) =15, vì vậy chúng giống nhau.

Để giải quyết vấn đề này, chúng ta có thể sử dụng hai cách khác nhau. Cách đầu tiên là duyệt qua hình thức bắt đầu đến kết thúc và lấy tổng bằng cách xen kẽ vị trí, sau đó lấy hiệu số. Phương pháp tiếp theo đơn giản hơn và hiệu quả. Nếu số đó chia hết cho 11 thì hiệu đó phải bằng 0. Vậy nói cách khác ta có thể nói rằng nếu tổng các số ở vị trí lẻ và tổng các số ở vị trí chẵn bằng nhau thì số đó chia hết cho 11.

Thuật toán

isDiffZero (n)

begin
   if n is divisible by 11, then
      return 1
   else
      return 0
   end if
end

Ví dụ

#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");
   }
}

Đầu ra

Enter a number: 156486
Difference is zero