하나의 긴 정수가 있다고 가정합니다. 홀수 자리 숫자의 합과 짝수 자리 숫자의 합 사이의 차이가 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