เราได้รับอาร์เรย์ของค่าจำนวนเต็ม และงานคือการคำนวณจำนวนองค์ประกอบในอาร์เรย์ที่สามารถหารผลรวมขององค์ประกอบอื่นๆ ทั้งหมดลงตัวได้
ตัวอย่าง
Input − int arr_1[] = {9, 6, 3} Output − count is 3
คำอธิบาย − ผลรวมของ 9+6 = 15 หารด้วย 3 ลงตัว, ผลรวมของ 9+3 = 12 หารด้วย 6 ลงตัว, และ 6+3 = 9 หารด้วย 9 ลงตัว ดังนั้นจึงนับได้ 3 ตัว
Input − arr[] = {3, 10, 4, 6, 7} Output − count is 3
คำอธิบาย − 10+4+6+7 = 27 หารด้วย 3 ลงตัว, 3+4+6+7 = 20 หารด้วย 10 ลงตัว, 3+10+4+7 = 24 หารด้วย 6 ลงตัว จึงนับได้ 3 ตัว
แนวทางการแก้ปัญหา
- สร้างอาร์เรย์ arr[]
- คำนวณขนาดของอาร์เรย์
- ใช้ตัวแปรนับผลลัพธ์
- วนลูป i จาก 0 ถึงขนาดอาร์เรย์
- ในแต่ละรอบ คำนวณผลรวมขององค์ประกอบอื่นๆ (ยกเว้น arr[i])
- ตรวจสอบว่าผลรวมหารด้วย arr[i] ลงตัวหรือไม่ ถ้าใช่เพิ่มตัวนับ
- คืนค่าผลลัพธ์
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
int countElements(int arr[], int size) {
int result = 0;
for (int i = 0; i < size; i++) {
int sum = 0;
for (int j = 0; j < size; j++) {
if (i == j) continue;
sum += arr[j];
}
if (sum % arr[i] == 0) {
result++;
}
}
return result;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "count is " << countElements(arr, size);
return 0;
}
ผลลัพธ์
count is 2
บทความนี้สาธิตวิธีนับจำนวนสมาชิกในอาร์เรย์ที่สามารถหารผลรวมของสมาชิกอื่นๆ ลงตัว โดยใช้ลูปซ้อนเพื่อคำนวณผลรวมและตรวจสอบเงื่อนไขการหารลงตัว