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

นับองค์ประกอบอาร์เรย์ที่หารผลรวมขององค์ประกอบอื่นๆ ทั้งหมดใน C++


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