在C++中查詢陣列數字乘積的最後k位數字


假設我們有一個包含n個元素的陣列A。我們還有一個數字k。我們的任務是找到陣列A中元素乘積的最後k位數字。假設 A = [15, 22, 13, 19, 17],則乘積為 1385670,最後 k = 3 位數字為 670。

為了解決這個問題,我們將按模 10k 乘以模數下的數字。

示例

 線上示例

#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

更新於:19-Dec-2019

123 次瀏覽

開啟你的職業生涯

完成課程即可獲得認證

開始
廣告