Computer >> Máy Tính >  >> Lập trình >> C ++

Thêm số tối thiểu vào một mảng để tổng trở thành số chẵn trong C ++?

Giả sử có một mảng với một số số. Chúng ta phải cho biết tối thiểu có bao nhiêu số sẽ được thêm vào với nó để làm cho tổng của các phần tử là chẵn. Số phải lớn hơn 0. Vì vậy, nếu tổng của các phần tử là lẻ, chúng ta sẽ thêm 1, nhưng nếu tổng đã là chẵn, thì chúng ta sẽ cộng 2 với nó để làm cho nó chẵn.

Thuật toán

addMinNumber (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

Ví dụ

#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";
}

Đầu ra

Minimum 1 should be added