เราได้รับอาร์เรย์ สมมติว่า 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