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

Số lần xóa tối thiểu để tổng mảng bằng nhau trong C ++

Tuyên bố vấn đề

Cho một mảng arr [] gồm N số nguyên. Chúng ta cần viết một chương trình để tìm số phần tử tối thiểu cần thiết để loại bỏ khỏi mảng, sao cho tổng các phần tử còn lại là số chẵn.

Ví dụ

Nếu mảng đầu vào là {10, 20, 30, 5} thì chúng ta cần loại bỏ một phần tử, tức là 5 để làm cho tổng mảng là chẵn

Thuật toán

 1. Tổng của bất kỳ số chẵn nào luôn luôn là số chẵn2. Tổng các số lẻ của các số lẻ luôn là số lẻ3. Tổng các số lẻ của số chẵn luôn là số chẵn4. Đếm số phần tử lẻ trong mảng. Nếu số phần tử lẻ trong mảng là chẵn thì ta không cần xóa phần tử nào khỏi mảng nhưng nếu số phần tử lẻ trong mảng là số lẻ thì bằng cách xóa bất kỳ một phần tử lẻ nào khỏi mảng  

Ví dụ

 #include  using namespace std; int getMinRemovals (int * arr, int n) {int cnt =0; for (int i =0; i