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

C++에서 주어진 숫자 K로 나눌 수 있는 배열의 모든 요소의 곱


n개의 정수와 또 다른 정수 k가 있는 배열 arr[n]이 주어지면 작업은 k로 나눌 수 있는 arr[]의 모든 요소를 ​​곱하는 것입니다.

문제를 해결하기 위해 우리는 배열의 모든 요소를 ​​반복하고 숫자 k로 완전히 나눌 수 있는지 여부를 찾은 다음 모든 요소를 ​​곱하여 변수에 저장해야 합니다. 배열 arr[] ={1, 2, 3, 4, 5, 6 }가 있고 k =2라고 가정하면 배열에서 2로 나눌 수 있는 숫자는 2, 4, 6이고 그 곱은 다음과 같습니다. 48과 같아야 합니다.

따라서 입력에 따라 답변을 원하는 방식의 예를 살펴보겠습니다.

입력

arr[] = {10, 11, 55, 2, 6, 7}
K = 11

출력

605

설명 - 11로 나누어 떨어지는 숫자는 11이고 55는 곱만 605입니다.

입력

arr[] = {9, 8, 7, 6, 3}
K = 3

출력

162

문제를 해결하기 위해 다음과 같은 접근 방식을 사용합니다.

  • 배열이 끝날 때까지 전체 배열을 반복합니다.

  • K로 나눌 수 있는 모든 정수를 찾습니다.

  • K로 나눌 수 있는 모든 요소를 ​​곱합니다.

  • 제품을 반품하세요.

  • 결과를 인쇄하십시오.

알고리즘

Start
Step 1→ declare function to find all the numbers divisible by number K
   int product(int arr[], int size, int k)
      declare int prod = 1
      Loop For int i = 0 and i < size and i++
      IF (arr[i] % k == 0)
         Set prod *= arr[i]
      End
      End
      return prod
Step 2→ In main()
   Declare int arr[] = {2, 3, 4, 5, 6 }
   Declare int size = sizeof(arr) / sizeof(arr[0])
   Set int k = 2
   Call product(arr, size, k)
Stop
호출

예시

#include <iostream>
using namespace std;
//function to find elements in an array divisible by k
int product(int arr[], int size, int k){
   int prod = 1;
   for (int i = 0; i < size; i++){
      if (arr[i] % k == 0){
         prod *= arr[i];
      }
   }
   return prod;
}
int main(){
   int arr[] = {2, 3, 4, 5, 6 };
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout<<"product of elements are : "<<product(arr, size, k);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

product of elements are : 48