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

합계가 C++에서 짝수가 되도록 배열에 최소 수를 추가하시겠습니까?

<시간/>

일부 숫자가 있는 배열이 있다고 가정합니다. 요소의 합을 짝수로 만들기 위해 얼마나 많은 숫자가 추가될 것인지 최소한으로 말해야 합니다. 숫자는 0보다 커야 합니다. 따라서 요소의 합이 홀수이면 1을 더하고 합이 이미 짝수이면 2를 더하여 짝수로 만듭니다.

알고리즘

최소 숫자 추가(arr)

begin
   s := 0
   for each element e from arr, do
      s := e + s
   done
   if s is even, then return 2, otherwise 1
end

예시

#include<iostream>
using namespace std;
int addMinNumber(int arr[], int n) {
   int sum = 0;
   for(int i = 0; i<n; i++) {
      sum += arr[i];
   }
   return (sum % 2)? 1 : 2;
}
main() {
   int arr[] = {5, 8, 4, 7, 5};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "Minimum " << addMinNumber(arr, n) << " should be added";
}

출력

Minimum 1 should be added