เราได้รับอาร์เรย์ ให้เรียกว่า arr[] ขององค์ประกอบจำนวนเต็มขนาดใดๆ และงานคือคำนวณจำนวนตัวหาร (factors) ของตัวเลขที่คำนวณได้จากการคูณองค์ประกอบทั้งหมดในอาร์เรย์
Arrays เป็นโครงสร้างข้อมูลที่เก็บชุดลำดับขนาดคงที่ขององค์ประกอบชนิดเดียวกัน An array ใช้เก็บชุดข้อมูล แต่บ่อยครั้งมีประโยชน์มากกว่าคิดว่าอาร์เรย์เป็นชุดตัวแปรชนิดเดียวกัน
ตัวอย่าง
อินพุต – int arr[] = {2, 3} เอาต์พุต – count is 4คำอธิบาย – ผลคูณของอาร์เรย์คือ 2 * 3 = 6 และตัวหารของ 6 คือ 1, 2, 3, 6 รวมทั้งหมด 4 ตัวหาร
อินพุต – int arr[] = {2, 3, 5} เอาต์พุต – count is 8คำอธิบาย – ผลคูณของอาร์เรย์คือ 2 * 3 * 5 = 30 และตัวหารของ 30 คือ 1, 2, 3, 5, 6, 10, 15, 30 รวมทั้งหมด 8 ตัวหาร
วิธีการที่ใช้ในโปรแกรมด้านล่าง
- สร้างอาร์เรย์ arr[]
- คำนวณความยาวของอาร์เรย์ด้วย length()
- ประกาศตัวแปรชั่วคราว ให้เป็น temp ตั้งค่าเป็น 1
- เริ่มลูป for i จาก 0 ถึง i น้อยกว่าขนาดอาร์เรย์
- ตั้งค่า temp = temp *= arr[i]
- เรียกฟังก์ชันอีกตัวที่จะคืนค่าจำนวน
- ใช้ตัวแปรชั่วคราวเก็บจำนวนองค์ประกอบ
- เริ่มลูป for i จาก 1 ถึง i น้อยกว่าหรือเท่ากับ mul
- ในลูป ตรวจสอบ if temp % i == 0 แล้วเพิ่มค่า count ขึ้น 1
- คืนค่า count
- พิมพ์ผลลัพธ์
ตัวอย่าง
#include <iostream>
using namespace std;
int divisors(int N){
int result = 0;
for (int i = 1; i <= N; ++i){
if (N % i == 0){
result++;
}
}
return result;
}
int countmultiples(int arr_1[], int size){
int temp = 1;
for (int i = 0; i < size; ++i){
temp *= arr_1[i];
}
return divisors(temp);
}
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