C/C++ 程序求数组乘法除以 n 的余数?
cc++server side programmingprogramming
数组乘法我们将求出给定数组所有元素的乘积。然后根据问题,我们将乘积除以数字 n。我们来举个例子 −
输入:arr[] = { 12, 35, 69, 74, 165, 54}; N = 47 输出:14
解释
数组类似于 {12, 35, 69, 74, 165, 54},因此乘法将是 (12 * 35 * 69 * 74 * 165 * 54) = 19107673200。现在,如果我们想得到将其除以 47 后的余数,它将是 14。
首先将所有数字相乘,然后取 % 除以 n,然后找到余数,但在这种方法中,如果数字最大为 2^64,则它会给出错误的答案。
示例
#include <stdio.h> int main() { int arr[] = { 12, 35, 69, 74, 165, 54}; int len = 6; int n = 47 ; int mul = 1; for (int i = 0; i < len; i++) mul = (mul * (arr[i] % n)) % n; printf("余数为 %d", (mul%n)); return 0; }
输出
余数为 14