จากอาร์เรย์ ให้เพิ่มจำนวนขั้นต่ำ (ซึ่งควรมากกว่า 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; }