C/C++程序查找数组乘积除以n的余数?
在这里,我们将了解如何计算数组乘积除以n后的余数。数组和n的值由用户提供。假设数组类似于{12, 35, 69, 74, 165, 54},则乘积将为(12 * 35 * 69 * 74 * 165 * 54) = 19107673200。现在,如果我们想得到除以47后的余数,它将是14。
正如我们所看到的,这个问题非常简单。我们可以很容易地将元素相乘,然后使用模运算符得到结果。但主要问题是,当我们计算乘积时,它可能会超过整数或长整型的范围。因此,它可能会返回一些无效的结果。为了克服这个问题,我们将遵循以下过程。
算法
multiplyRemainder(arr, size, n)
begin mul := 1 for i in range 0 to size – 1, do mul := (mul * (arr[i] mod n)) mod n done return mul mod n end
示例
#include<iostream>
using namespace std;
int multiplyRemainder(int arr[], int size, int n){
int mul = 1;
for(int i = 0; i<size; i++){
mul = (mul * (arr[i] % n)) % n;
}
return mul % n;
}
int main(){
int arr[6] = {12, 35, 69, 74, 165, 54};
int size = 6;
int n = 47;
cout << "Remainder: " << multiplyRemainder(arr, size, n);
}输出
Remainder: 14
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP