Cho một mảng arr [n] với n số nguyên và k số nguyên khác, nhiệm vụ là tìm tích tất cả các phần tử của arr [] chia hết cho k.
Để giải quyết vấn đề, chúng ta phải lặp lại mọi phần tử của mảng và tìm xem nó có chia hết cho số k hay không, sau đó tích tất cả các phần tử và lưu trữ nó vào một biến. Giống như chúng ta có một mảng arr [] ={1, 2, 3, 4, 5, 6} và giả sử chúng ta có k =2 vì vậy các số trong mảng chia hết cho 2 là 2, 4, 6 và tích của chúng sẽ bằng 48.
Vì vậy, hãy xem ví dụ về cách chúng tôi muốn câu trả lời của mình theo đầu vào
Đầu vào
arr[] = {10, 11, 55, 2, 6, 7} K = 11
Đầu ra
605
Giải thích - các số chia hết cho 11 là 11 và 55 chỉ tích của chúng là 605
Đầu vào
arr[] = {9, 8, 7, 6, 3} K = 3
Đầu ra
162
Phương pháp tiếp cận được sử dụng dưới đây như sau để giải quyết vấn đề
-
Lặp lại toàn bộ mảng cho đến cuối một mảng.
-
Hãy tìm mọi số nguyên chia hết cho K.
-
Tích mọi phần tử chia hết cho K.
-
Trả lại sản phẩm.
-
In kết quả.
Thuật toán
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
Ví dụ
#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; }
Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
product of elements are : 48