ให้อาร์เรย์ arr[n] ที่มีจำนวนเต็ม n ตัวและจำนวนเต็ม k อีกจำนวนหนึ่ง ภารกิจคือค้นหาผลิตภัณฑ์องค์ประกอบทั้งหมดของ arr[] ซึ่งหารด้วย k ลงตัวพี>
เพื่อแก้ปัญหานี้ เราต้องวนซ้ำทุกองค์ประกอบของอาร์เรย์และค้นหาว่าตัวเลข k หารลงตัวทั้งหมดหรือไม่ จากนั้นสร้างผลิตภัณฑ์องค์ประกอบทั้งหมดและจัดเก็บไว้ในตัวแปร เช่นเดียวกับที่เรามีอาร์เรย์ arr[] ={1, 2, 3, 4, 5, 6 } และสมมติว่าเรามี k =2 ดังนั้นตัวเลขในอาร์เรย์ที่หารด้วย 2 ลงตัวคือ 2, 4, 6 และผลิตภัณฑ์จะ เท่ากับ 48
เรามาดูตัวอย่างว่าเราต้องการคำตอบอย่างไรตามอินพุต
ป้อนข้อมูล
arr[] = {10, 11, 55, 2, 6, 7}
K = 11 ผลผลิต
605
คำอธิบาย − ตัวเลขที่หารด้วย 11 ลงตัวคือ 11 และ 55 เฉพาะผลคูณของมันคือ 605
ป้อนข้อมูล
arr[] = {9, 8, 7, 6, 3}
K = 3 ผลผลิต
162
แนวทางที่ใช้ด้านล่างมีดังต่อไปนี้ในการแก้ปัญหา
-
วนซ้ำทั้งอาร์เรย์จนถึงส่วนท้ายสุดของอาร์เรย์
-
มองหาทุกจำนวนเต็มที่หารด้วย K.
-
สินค้าทุกองค์ประกอบหารด้วย K.
-
คืนสินค้า
-
พิมพ์ผลลัพธ์
อัลกอริทึม
Start
Step 1→ declare function to find all the numbers divisible by number K
int product(int arr[], int size, int k)
declare int prod = 1
Loop For int i = 0 and i < size and i++
IF (arr[i] % k == 0)
Set prod *= arr[i]
End
End
return prod
Step 2→ In main()
Declare int arr[] = {2, 3, 4, 5, 6 }
Declare int size = sizeof(arr) / sizeof(arr[0])
Set int k = 2
Call product(arr, size, k)
Stop ตัวอย่าง
#include <iostream>
using namespace std;
//function to find elements in an array divisible by k
int product(int arr[], int size, int k){
int prod = 1;
for (int i = 0; i < size; i++){
if (arr[i] % k == 0){
prod *= arr[i];
}
}
return prod;
}
int main(){
int arr[] = {2, 3, 4, 5, 6 };
int size = sizeof(arr) / sizeof(arr[0]);
int k = 2;
cout<<"product of elements are : "<<product(arr, size, k);
return 0;
} ผลลัพธ์
หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
product of elements are : 48