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