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

C++의 배열에서 나눌 수 있는 쌍 계산

<시간/>

정수 요소를 포함하는 모든 크기의 배열이 주어지고 작업은 쌍의 한 요소가 쌍의 다른 요소를 나누도록 배열의 쌍 수를 계산하는 것입니다.

배열은 같은 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장할 수 있는 일종의 데이터 구조입니다. 배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다.

Input − int arr[] = {1, 2, 3, 6}
Output − count is 4

설명 - (1,2), (1,3), (1,6) 및 (3,6)은 1이 모든 숫자를 나눌 수 있고 3도 6을 나눌 수 있으므로 쌍의 한 요소가 다른 요소를 나누는 쌍입니다. 따라서 개수는 4입니다.

Input − int arr[] = {2, 5, 10}
Output − count is 2

설명 − (2, 10) 및 (5,10)은 2가 10을 나눌 수 있고 5가 10을 나눌 수 있는 것처럼 한 쌍의 요소가 다른 요소를 나누는 쌍입니다. 따라서 개수는 2입니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • arr[]

    라고 가정해 봅시다.
  • 배열의 요소에 따라 정수 값을 반환하는 length() 함수를 사용하여 배열의 길이를 계산합니다.

  • 배열에만 존재하는 요소의 개수를 저장할 임시 변수를 가져옵니다.

  • 루프 시작 for i to 0 및 i가 배열 크기보다 작음

  • 루프 내에서 j가 크기보다 작아질 때까지 j에서 i+1로 다른 루프를 시작합니다.

  • 루프 내에서 arr[i] % arr[j] =0 또는 arr[j] % arr[i] =0인지 확인한 다음 카운트를 증가시킵니다.

  • 개수 반환

  • 결과를 인쇄하십시오.

예시

#include <iostream>
using namespace std;
int divisibles(int a[], int size){
   int result = 0;
   // Iterating through all pairs
   for (int i=0; i<size; i++){
      for (int j=i+1; j<size; j++){
         if (a[i] % a[j] == 0 || a[j] % a[i] == 0){
            result++;
         }
      }
   }
   return result;
}
int main(){
   int a[] = {1, 4, 7, 8, 9};
   int size = sizeof(a) / sizeof(a[0]);
   cout <<"count is " <<divisibles(a, size);
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

count is 5