Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C cho độ chênh lệch giữa tổng chữ số ở vị trí 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 độ chênh lệch 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 (bên trái nhất).

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, nên chúng giống nhau.

Để giải quyết bài toán này, chúng ta có thể dùng hai cách khác nhau. Cách đầu tiên là duyệt từ đầu đến cuối và lấy tổng bằng cách thay đổi vị trí, sau đó lấy độ chênh lệch. Cách tiếp theo đơn giản và hiệu quả hơn. Nếu số chia hết cho 11, thì độ chênh lệch phải là 0. Nói cách khác, chúng 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");
  }
}

Kết quả

Enter a number: 156486
Difference is zero