ให้อาร์เรย์ 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