เราได้รับอาร์เรย์ สมมติว่า arr[] ของค่าจำนวนเต็ม และภารกิจคือการคำนวณจำนวนองค์ประกอบอาร์เรย์ที่หารผลรวมขององค์ประกอบอื่นๆ ทั้งหมด
อาร์เรย์ประเภทโครงสร้างข้อมูลที่สามารถจัดเก็บคอลเล็กชันแบบต่อเนื่องที่มีขนาดคงที่ขององค์ประกอบประเภทเดียวกัน อาร์เรย์ใช้เพื่อจัดเก็บชุดข้อมูล แต่มักจะมีประโยชน์มากกว่าที่จะคิดว่าอาร์เรย์เป็นชุดของตัวแปรประเภทเดียวกัน
ตัวอย่าง
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[]
-
คำนวณความยาวของอาร์เรย์โดยใช้ฟังก์ชัน length() ที่จะคืนค่าจำนวนเต็มตามองค์ประกอบในอาร์เรย์
-
ใช้ตัวแปรชั่วคราวที่จะเก็บจำนวนองค์ประกอบ
-
เริ่มวนรอบสำหรับ i ถึง 0 และฉันน้อยกว่าขนาดของอาร์เรย์
-
ภายในลูป ให้ตั้งค่าตัวแปรชั่วคราว สมมุติว่า temp เป็น 0
-
ภายในลูป เริ่มวนซ้ำอีกครั้งสำหรับ j ถึง 0 และ j น้อยกว่าขนาดของอาร์เรย์
-
ตรวจสอบว่า i =j แล้วทำต่อ
-
อย่างอื่น set temp =temp + arr[j]
-
ตอนนี้ตรวจสอบว่า temp % arr[i] =0 แล้วเพิ่มค่าของการนับขึ้น 1
-
คืนจำนวน
-
พิมพ์ผลลัพธ์
ตัวอย่าง
#include <iostream> using namespace std; int countelements( int arr_1[], int size){ // To store the count of required numbers int result = 0; for (int i = 0; i < size; i++){ // Initialize sum to 0 int sum = 0; for (int j = 0; j < size; j++){ if (i == j){ continue; } else{ sum += arr_1[j]; } } // If sum is divisible by the chosen element if (sum % arr_1[i] == 0){ result++; } } // Return the count return result; } // main function int main(){ int arr_1[] = { 1, 2, 3, 4, 5, 6 }; int size = sizeof(arr_1) / sizeof(arr_1[0]); cout <<"count is " <<countelements(arr_1, size); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -
count is 2