当前位置: 首页 > 编程笔记 >

在C ++中查找数组编号的乘积的最后k位

徐兴昌
2023-03-14
本文向大家介绍在C ++中查找数组编号的乘积的最后k位,包括了在C ++中查找数组编号的乘积的最后k位的使用技巧和注意事项,需要的朋友参考一下

假设我们有一个由n个元素组成的数组,称为A。我们还有另一个数字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
 类似资料:
  • 本文向大家介绍在C ++中查找前N个质数的乘积,包括了在C ++中查找前N个质数的乘积的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个数字n。我们必须找到1到n之间的质数的乘积。因此,如果n = 7,则输出将为210,因为2 * 3 * 5 * 7 = 210。 我们将使用Eratosthenes筛分法来查找所有素数。然后计算它们的乘积。 示例 输出结果

  • 给定一个数组,我想计算子数组的数量(连续的),当取的乘积不会被k整除。 例如。设 A = 和 K = 2 则使乘积不能被 K 整除的子数组数为 2: 其余的都可以被2整除。 我首先尝试计算子数组(n)(n 1)/2的总数,然后使用mod减去可被k整除的子数组的数量,但它不起作用。我该如何解决这个问题? 这(错误地)计算了乘积可被K整除的子阵列数: 一个稍微相关的问题是这个问题,但它涉及加法,因此不

  • 问题内容: 这是我用Java写的代码…除此之外,还有什么有效的方法吗?我们还能进一步优化此代码吗? 问题答案: 我们假设最大的回文数将是6位而不是5位,因为143 * 777 = 111111是回文。 如其他地方所述,6位数的10进制回文数abccba是11的倍数。这是正确的,因为a * 100001 + b * 010010 + c * 001100等于11 * a * 9091 + 11 *

  • 本文向大家介绍LCM的最大长度子数组等于C ++中的乘积,包括了LCM的最大长度子数组等于C ++中的乘积的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个数组A。我们必须找到子数组的最大长度,它的LCM与该子数组元素的乘积相同。如果找不到这种子数组,则返回-1。假设数组为{6,10,21},则长度为2,因为在那里有子数组{10,21},其LCM为210,乘积也为210。 该方法是直接的。我

  • 我试图找到给定排序数组的最大K数。 ex:输入- 到目前为止,我编写的代码返回最大的K元素,但它需要返回最大的K数字。任何帮助都将不胜感激。