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

นับตัวหารของการคูณอาร์เรย์ใน C++


เราได้รับอาร์เรย์ สมมติว่า arr[] ขององค์ประกอบจำนวนเต็มของขนาดที่กำหนด และภารกิจคือการคำนวณการนับปัจจัยของตัวเลขที่คำนวณโดยการคูณองค์ประกอบอาร์เรย์ทั้งหมด

อาร์เรย์ประเภทโครงสร้างข้อมูลที่สามารถจัดเก็บคอลเล็กชันแบบต่อเนื่องที่มีขนาดคงที่ขององค์ประกอบประเภทเดียวกัน อาร์เรย์ใช้เพื่อจัดเก็บชุดข้อมูล แต่มักจะมีประโยชน์มากกว่าที่จะคิดว่าอาร์เรย์เป็นชุดของตัวแปรประเภทเดียวกัน

ตัวอย่าง

Input − int arr[] = {2, 3}
Output − count is 4

คำอธิบาย − การคูณอาร์เรย์คือ 2 * 3 ได้ 6 และตัวประกอบของ 6 คือ 1, 2, 3, 6 ดังนั้นทั้งหมดจึงมีตัวประกอบ 4 ตัวคือ 6

Input − int arr[] = {2, 3, 5}
Output − count is 8

คำอธิบาย − การคูณอาร์เรย์คือ 2 * 3 * 5 เท่ากับ 30 และตัวประกอบของ 30 คือ 1, 2, 3, 5, 6, 10, 15, 30 โดยรวมแล้วมีตัวประกอบ 30 ตัวมี 8 ตัว

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • สร้างอาร์เรย์ สมมุติว่า arr[]

  • คำนวณความยาวของอาร์เรย์โดยใช้ฟังก์ชัน length() ที่จะคืนค่าจำนวนเต็มตามองค์ประกอบในอาร์เรย์

  • ประกาศตัวแปรชั่วคราว สมมติว่า ตั้งค่า temp เป็น 1

  • เริ่มวนรอบสำหรับ i ถึง 0 และฉันน้อยกว่าขนาดของอาร์เรย์

  • ตั้งค่า temp เป็น temp * =arr[i]

  • เรียกใช้ฟังก์ชันอื่นที่จะคืนค่าการนับ

  • ใช้ตัวแปรชั่วคราวที่จะเก็บจำนวนองค์ประกอบ

  • เริ่มวนรอบสำหรับ i ถึง 1 และ i น้อยกว่าเท่ากับ mul.

  • Inside loop ตรวจสอบว่า temp % i =0 แล้วเพิ่มค่าของการนับขึ้น 1

  • คืนจำนวน

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include <iostream>
using namespace std;
// Function to count number of factors
int divisors(int N){
   // Initialize result with 0
   int result = 0;
   // Increment result for every factor
   // of the given number N.
   for (int i = 1; i <= N; ++i){
      if (N % i == 0){
         result++;
      }
   }
   return result;
}
int countmultiples(int arr_1[], int size){
   // To multiply all elements of
   // the given array.
   int temp = 1;
   for (int i = 0; i < size; ++i){
      temp *= arr_1[i];
   }
   return divisors(temp);
}
// main function
int main(){
   int arr_1[] = { 5, 10, 15 };
   int size = sizeof(arr_1) / sizeof(arr_1[0]);
   cout <<"count is "<<countmultiples(arr_1, size);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -

count is 16