문제 설명
각 배열에서 하나의 요소가 누락된 연속 짝수 및 홀수 요소를 각각 포함하는 두 개의 정수 배열 짝수 [] 및 홀수 []가 주어집니다. 과제는 누락된 요소를 찾는 것입니다.
예
짝수[] ={10, 8, 6, 16, 12} andodd[] ={3, 9, 13, 7, 11}이면 짝수 배열에서 누락된 숫자는 14이고 홀수 배열에서 누락된 숫자는 5입니다.사전>알고리즘
- even[] 배열의 최소 및 최대 짝수 요소를 변수 minEven 및 maxEven에 저장
- 처음 N개의 짝수의 합은 N * (N + 1)입니다. 2에서 minEven까지의 짝수의 합을 계산하고 sum1이라고 말하고 2부터 maxEven까지의 짝수의 합을 계산합니다.
- 짝수 배열의 필요한 합계는 reqSum =sum2 – sum1 + minEven이 됩니다. 이 reqSum에서 even[] 배열 합계를 빼면 누락된 짝수가 나옵니다.
- 마찬가지로 누락된 홀수는 처음 N개의 홀수의 합이 N2라는 것을 알기 때문에 찾을 수 있습니다.
예
#include네임스페이스 std;void findMissingNums(int even[], int sizeEven, int odd[], int sizeOdd) { int minEven =INT_MAX; 정수 maxEven =INT_MIN; 정수 minOdd =INT_MAX; 정수 maxOdd =INT_MIN; 정수 sumEvenArr =0, sumOddArr =0; for (int i =0; i 위의 프로그램을 컴파일하고 실행할 때. 다음 출력을 생성합니다 -
출력
짝수 누락 =14홀수 누락 =5