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

C++에서 다른 모든 요소의 합을 나누는 배열 요소 수 계산

<시간/>

배열에 정수 값의 arr[]이 주어지고 작업은 다른 모든 요소의 합을 나누는 배열 요소의 개수를 계산하는 것입니다.

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

Input − int arr_1[] = {9, 6, 3}
Output − count is 3

설명 − 원소 9+6의 합 =3으로 나누어 떨어지는 15, 원소 9+3의 합 =6으로 나눌 수 있는 12, 6+3 =9로 나누어 떨어지는 원소 9. 따라서 개수는 3입니다.

Input − arr[] = {3, 10, 4, 6, 7}
Output − count is 3

설명 - 원소 10+4+6+7의 합 =27이고 3으로 나누어 떨어지듯이, 원소 3+4+6+7의 합은 10으로 나누어지는 20이고, 3+10+4+7 =24입니다. 6으로 나눌 수 있습니다. 따라서 개수는 3입니다.

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

  • arr[]

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

  • 요소 수를 저장할 임시 변수를 가져옵니다.

  • i에 대한 루프 시작 0 및 i가 배열 크기보다 작음

  • 루프 내부에서 임시 변수를 0으로 설정합니다.

  • 루프 내에서 j가 0이고 배열 크기보다 작은 j에 대해 다른 루프를 시작합니다.

  • i =j인지 확인한 다음 계속

  • 그렇지 않으면 설정 temp =temp + arr[j]

  • 이제 temp % arr[i] =0인지 확인한 다음 count 값을 1 증가시킵니다.

  • 개수 반환

  • 결과를 인쇄하십시오.

예시

#include <iostream>
using namespace std;
int countelements( int arr_1[], int size){
   // To store the count of required numbers
   int result = 0;
   for (int i = 0; i < size; i++){
      // Initialize sum to 0
      int sum = 0;
      for (int j = 0; j < size; j++){
         if (i == j){
            continue;
         }
         else{
            sum += arr_1[j];
         }
      }
      // If sum is divisible by the chosen element
      if (sum % arr_1[i] == 0){
         result++;
      }
   }
   // Return the count
   return result;
}
// main function
int main(){
   int arr_1[] = { 1, 2, 3, 4, 5, 6 };
   int size = sizeof(arr_1) / sizeof(arr_1[0]);
   cout <<"count is " <<countelements(arr_1, size);
   return 0;
}

출력

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

count is 2