จากอาร์เรย์ ให้เพิ่มจำนวนขั้นต่ำ (ซึ่งควรมากกว่า 0) ให้กับอาร์เรย์เพื่อให้ผลรวมของอาร์เรย์กลายเป็นคู่
ป้อนข้อมูล - 1 2 3 4
ผลผลิต - 2
คำอธิบาย - ผลรวมของอาร์เรย์คือ 10 ดังนั้นเราจึง
บวกเลขขั้นต่ำ 2 เพื่อให้ผลรวมเท่ากัน
วิธีที่ 1 :คำนวณผลรวมขององค์ประกอบทั้งหมดของอาร์เรย์ จากนั้นตรวจสอบว่าผลรวมเป็นคู่หรือไม่ จากนั้นให้เพิ่มจำนวนขั้นต่ำคือ 2 มิฉะนั้นให้เพิ่มจำนวนขั้นต่ำคือ 1
ป้อนข้อมูล - 1 2 3 4
ผลผลิต - 2
คำอธิบาย - ผลรวมของอาร์เรย์คือ 10 ดังนั้นให้เพิ่มจำนวนขั้นต่ำ 2 เพื่อให้ผลรวมเป็นคู่
ตัวอย่าง
#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;
} วิธีที่ 2 - คำนวณจำนวนองค์ประกอบคี่ในอาร์เรย์ หากการนับจำนวนคี่เป็นเลขคู่เราจะส่งคืน 2 มิฉะนั้นเราจะคืนค่า 1
ป้อนข้อมูล - 1 2 3 4 5
ผลผลิต - 1
คำอธิบาย - ไม่. ของในอาร์เรย์คือ3
บวกเลขขั้นต่ำ 1 เพื่อให้ผลรวมเท่ากัน
ตัวอย่าง
#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;
} วิธีที่ 3 - ใช้ตัวแปรแฟล็ก (เริ่มต้นเป็น 0) เมื่อใดก็ตามที่เราพบองค์ประกอบคี่ในอาร์เรย์ เราจะดำเนินการ NOT(!) กับตัวแปรบูลีน ตัวดำเนินการแบบลอจิคัลนี้กลับค่าของตัวแปรแฟล็ก (หมายความว่าถ้าเป็น 0 ตัวดำเนินการจะแปลงตัวแปรเป็น 1 และในทางกลับกัน)
ป้อนข้อมูล - 1 2 3 4 5
ผลผลิต - 1
คำอธิบาย - ตัวแปรเริ่มต้นเป็น 0
ข้ามอาร์เรย์
1 เป็นเลขคี่ ตัวแปรเปลี่ยน 1
2 เท่ากัน
3 เป็นเลขคี่ ตัวแปรเปลี่ยน 0
4 เท่ากัน
5 เป็นเลขคี่ ตัวแปรเปลี่ยน 1
หากค่าตัวแปรเป็น 1 แสดงว่ามีองค์ประกอบคี่เป็นจำนวนคี่ จำนวนขั้นต่ำในการรวมองค์ประกอบเป็นคู่คือการบวก 1
ตัวเลขขั้นต่ำอื่นคือ 2
ตัวอย่าง
#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;
}