Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

n으로 나눈 배열 곱셈의 알림을 찾는 C/C++ 프로그램?

<시간/>

여기서 우리는 결과를 n으로 나눈 후 배열 곱셈의 나머지를 계산하는 방법을 볼 것입니다. 배열과 n 값은 사용자가 제공합니다. 배열이 {12, 35, 69, 74, 165, 54}와 같으므로 곱셈은 (12 * 35 * 69 * 74 * 165 * 54) =19107673200이 됩니다. 이제 이것을 다이빙한 후 나머지를 얻으려면 47이면 14가 됩니다.

우리가 볼 수 있듯이 이 문제는 매우 간단합니다. 요소를 쉽게 곱한 다음 모듈러스 연산자를 사용하여 결과를 얻을 수 있습니다. 그러나 주요 문제는 곱셈을 계산할 때 정수의 범위를 초과하거나 long도 초과할 수 있다는 것입니다. 따라서 일부 잘못된 결과를 반환할 수 있습니다. 이 문제를 극복하기 위해 우리는 이 과정을 따를 것입니다.

알고리즘

multiplyRemainder(arr, 크기, 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