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