Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 프로그래밍에서 합이 짝수가 되도록 배열에 최소 수를 추가합니다.

<시간/>

배열이 주어지면 배열의 합이 짝수가 되도록 배열에 최소 숫자(0보다 커야 함)를 추가합니다.

입력 - 1 2 3 4,

출력 - 2

설명 - 배열의 합은 10이므로

합을 균일하게 하려면 최소 숫자 2를 추가하세요.

방법 1 :배열의 모든 요소의 합을 계산한 다음 합이 짝수인지 확인한 다음 최소 수를 더하면 2가 되고 더하면 최소 수는 1이 됩니다.

입력 - 1 2 3 4,

출력 - 2

설명 - 배열의 합은 10이므로 합을 균일하게 하기 위해 최소 2를 더합니다.

예시

#include<iostream>
using namespace std;
int main() {
   int arr[] = { 1, 2, 3, 4};
   int n=4;
   int sum=0;
   for (int i = 0; i <n; i++) {
      sum+=arr[i];
   }
   if (sum % 2==0) {
      cout <<"2";
   } else {
      cout <<"1";
   }
   return 0;
}

방법 2 - 배열에 있는 홀수 개수의 요소 수를 계산합니다. 존재하는 홀수의 개수가 짝수이면 2를 반환하고 그렇지 않으면 1을 반환합니다.

입력 - 1 2 3 4 5

출력 - 1

설명 - 아니요. 배열의 는 3입니다.
합을 균일하게 하려면 최소 숫자 1을 더하세요.

예시

#include<iostream>
using namespace std;
int main() {
   int arr[] = { 1, 2, 3, 4,5};
   int n=5;
   int odd = 0;
   for (int i = 0; i < n; i++) {
      if (arr[i] % 2!=0) {
         odd += 1;
      }
   }
   if (odd % 2==0) {
      cout <<"2";
   } else {
      cout <<"1";
   }
   return 0;
}

방법 3 - 플래그 변수를 가져옵니다(0으로 초기화됨). 배열에서 홀수 요소를 찾을 때마다 부울 변수에 대해 NOT(!) 연산을 수행합니다. 이 논리 연산자는 플래그 변수의 값을 반전시킵니다(즉, 0이면 변수를 1로, 그 반대로 변환).

입력 - 1 2 3 4 5

출력 - 1

설명 - 0으로 초기화된 변수.
배열 순회
1은 홀수이고 변수는 1로 변경되었습니다.
2는 짝수
3은 홀수이고 변수는 0으로 변경되었습니다.
4는 짝수
5는 홀수이고 변수는 1로 변경됨

변수 값이 1이면 홀수의 요소가 존재한다는 의미이며 요소의 합이 짝수가 되는 최소 개수는 1을 더하는 것입니다.

그 외 최소 숫자는 2입니다.

예시

#include<iostream>
using namespace std;
int main() {
   int arr[] = { 1, 2, 3, 4,5};
   int n=5;
   bool odd = 0;
   for (int i = 0; i < n; i++) {
      if (arr[i] % 2!=0) {
         odd = !odd;
      }
   }
   if (odd) {
      cout <<"1";
   } else {
      cout <<"2";
   }
   return 0;
}