Giả sử có một mảng chứa các số. Chúng ta cần xác định số lượng số nguyên dương tối thiểu cần thêm vào để tổng các phần tử trở thành số chẵn. Số thêm vào phải lớn hơn 0. Vì vậy, nếu tổng các phần tử là lẻ, ta thêm 1; nếu tổng đã là chẵn, ta thêm 2 để tổng vẫn chẵn.
Thuật toán
addMinNumber(arr)
bắt đầu
s := 0
với mỗi phần tử e từ arr, thực hiện
s := e + s
done
nếu s là chẵn, trả về 2, ngược lại trả về 1
kết thúc
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;
}
int main() {
int arr[] = {5, 8, 4, 7, 5};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Minimum " << addMinNumber(arr, n) << " should be added";
return 0;
}
Kết quả
Minimum 1 should be added