Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm lời nhắc về phép nhân mảng chia cho n trong C ++


Giả sử chúng ta có một mảng gồm n phần tử được gọi là A. Chúng ta phải in phần dư sau khi nhân tất cả các số chia cho n. Giả sử A =[100, 10, 5, 25, 35, 14] và n =11. Đầu ra là 9. Vậy giá trị của 100 * 10 * 5 * 25 * 35 * 14 mod 11 =9.

Đầu tiên, chúng ta phải lấy phần dư của mỗi số, sau đó nhân phần còn lại với kết quả hiện tại. Sau khi nhân, lại lấy phần còn lại để tránh tràn.

Ví dụ

#include<iostream>
#include<algorithm>
using namespace std;
int getRemainder(int a[], int size, int n) {
   int mul = 1;
   for(int i = 0; i<size; i++){
      mul = (mul * (a[i] % n)) %n;
   }
   return mul%n;
}
int main() {
   int arr[] = {100, 10, 5, 25, 35, 14};
   int size = sizeof(arr)/sizeof(arr[0]);
   int n = 11;
   cout << "The remainder is: " << getRemainder(arr, size, n);
}

Đầu ra

The remainder is: 9