Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 배열 숫자의 곱에서 마지막 k 자리 찾기

<시간/>

A라고 하는 n개의 요소 배열이 있다고 가정합니다. 또 다른 숫자 k가 있습니다. 우리의 임무는 배열 A에 있는 요소의 곱의 마지막 k 자리를 찾는 것입니다. A =[15, 22, 13, 19, 17]이고 곱이 1385670이고 마지막 k =3 자리가 670이라고 가정합니다.

이 문제를 해결하기 위해 모듈로 10 k 아래의 숫자를 곱합니다. .

예시

#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