Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

เพิ่มจำนวนขั้นต่ำลงในอาร์เรย์เพื่อให้ผลรวมกลายเป็นคู่ในการเขียนโปรแกรม C


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