Cho mảng, thêm số nhỏ nhất (>0) để tổng mảng thành chẵn.
Input: 1 2 3 4, Output: 2
Tổng = 10 (chẵn), thêm 2 để tổng vẫn chẵn (12).
Phương pháp 1: Tính tổng, nếu chẵn trả 2, lẻ trả 1.
Ví dụ
#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;
}
Phương pháp 2: Đếm số phần tử lẻ. Nếu số lượng lẻ là chẵn trả 2, lẻ trả 1.
Input: 1 2 3 4 5 Output: 1
Ví dụ
#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;
}
Phương pháp 3: Dùng cờ boolean (khởi tạo 0). Gặp phần tử lẻ, đảo cờ (!odd). Cuối cùng: cờ=1 -> thêm 1, cờ=0 -> thêm 2.
Ví dụ
#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;
}