สมมติว่ามีอาร์เรย์ตัวเลข เราต้องการหาจำนวนตัวเลขน้อยที่สุดที่ต้องเพิ่มเข้าไป เพื่อให้ผลรวมของสมาชิกทั้งหมดเป็นเลขคู่ ตัวเลขที่เพิ่มต้องมากกว่า 0 ดังนั้น หากผลรวมเป็นเลขคี่ เราจะเพิ่ม 1 แต่ถ้าผลรวมเป็นเลขคู่แล้ว เราจะเพิ่ม 2 เพื่อให้ยังคงเป็นเลขคู่
อัลกอริทึม
addMinNumber(arr)
เริ่มต้น s := 0 สำหรับแต่ละสมาชิก e จาก arr ทำ s := e + s จบลูป ถ้า s เป็นเลขคู่ คืนค่า 2 มิฉะนั้นคืนค่า 1 สิ้นสุด
ตัวอย่างโค้ด
#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;
}
ผลลัพธ์
Minimum 1 should be added