Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tích các phần tử mảng chia hết cho K trong C++


Cho mảng arr[] n phần tử và số k. Nhiệm vụ: tính tích các phần tử chia hết cho k.

Ví dụ 1

Input – arr[] = {10, 11, 55, 2, 6, 7}, K = 11

Output – 605

Giải thích: 11 và 55 chia hết cho 11. Tích = 11 × 55 = 605.

Ví dụ 2

Input – arr[] = {9, 8, 7, 6, 3}, K = 3

Output – 162

Giải thích: 9, 6, 3 chia hết cho 3. Tích = 9 × 6 × 3 = 162.

Thuật toán

  1. Khởi tạo product = 1.
  2. Duyệt mảng, nếu arr[i] % k == 0 thì product *= arr[i].
  3. Trả về product.

Ví dụ code

#include <iostream>
using namespace std;

long long productDivisibleByK(int arr[], int n, int k) {
    long long prod = 1;
    bool found = false;
    for (int i = 0; i < n; i++) {
        if (arr[i] % k == 0) {
            prod *= arr[i];
            found = true;
        }
    }
    return found ? prod : 0; // Trả về 0 nếu không có phần tử nào
}

int main() {
    int arr[] = {2, 3, 4, 5, 6};
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 2;
    cout << "Product: " << productDivisibleByK(arr, n, k) << endl;
    return 0;
}

Kết quả

Product: 48

Giải thích: 2, 4, 6 chia hết cho 2. Tích = 2×4×6 = 48.

Lưu ý: Tích có thể rất lớn, nên dùng long long hoặc modulo nếu bài toán yêu cầu.