在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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP