C/C++ 程序查找数组相乘后的余数再除以 n 的方法是什么?
数组相乘,我们将会找到所给数组所有元素的乘积。然后根据该问题,我们将得到的产品除以数字 n。我们举个例子:
Input: arr[] = { 12, 35, 69, 74, 165, 54};
N = 47
Output: 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("the remainder is %d", (mul%n));
return 0;
}输出
the remainder is 14
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP