Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หาตัวเลข k หลักสุดท้ายในผลคูณของอาร์เรย์


สมมติว่าเรามีอาร์เรย์ n องค์ประกอบชื่อ A เรามีตัวเลข k อีกตัวหนึ่ง งานของเราคือหาตัวเลข k หลักสุดท้ายของผลคูณขององค์ประกอบในอาร์เรย์ A สมมติ A = [15, 22, 13, 19, 17] ผลคูณคือ 1385670 ตัวเลข k = 3 หลักสุดท้ายคือ 670

เพื่อแก้ปัญหานี้ เราจะคูณตัวเลขภายใต้ modulo 10^k

ตัวอย่างโค้ด C++

#include <iostream>
#include <cmath>
using namespace std;

int displayLastKNumbers(int array[], int n, int k) {
    int mod = (int)pow(10, k);
    int mul = array[0] % mod;
    for (int i = 1; i < n; i++) {
        array[i] = array[i] % mod;
        mul = (array[i] * mul) % mod;
    }
    return mul;
}

int main() {
    int a[] = {15, 22, 13, 19, 17};
    int k = 3;
    int n = sizeof(a) / sizeof(a[0]);
    cout << "Last K digits are: " << displayLastKNumbers(a, n, k);
}

ผลลัพธ์

Last K digits are: 670