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

C++에서 k로 나눌 수 있는 배열의 요소 수를 계산합니다.

<시간/>

양의 정수 배열과 정수 변수 k가 주어집니다. 작업은 주어진 값 k로 나눌 수 있는 배열의 요소 수를 계산하는 것입니다.

입력 - 정수 arr[] ={4, 2, 6, 1, 3, 8, 10, 9}, k =2

출력 − 2로 나눌 수 있는 배열의 요소 수를 계산합니다. − 5

설명 - 배열의 요소를 값 k로 나누고 알림이 0인지 여부를 확인합니다. 따라서 4는 2의 배수, 2는 2, 6은 2, 1은 2, 3은 2, 8은 2, 10은 2, 9는 9가 아닙니다. ' 2로 나눌 수 없습니다. 따라서 배열에는 k, 즉 2로 완전히 나눌 수 있는 5개의 요소가 있습니다.

입력 - 정수 arr[] ={3, 2, 9, 15, 0, 8, 10}, k =3

출력 − 3으로 나눌 수 있는 배열의 요소 수를 계산합니다. − 3

설명 - 배열의 요소를 값 k로 나누고 알림이 0인지 여부를 확인합니다. 따라서 3은 3으로 나누어 떨어지지 않으며, 2는 3으로 나누어 떨어지지 않으며, 9는 3으로 나눌 수 있고, 15는 3으로 나눌 수 있고, 0은 어떤 수로도 나누어 떨어지지 않으며, 8은 3으로 나누어 떨어지지 않으며, 10은 나눌 수 없습니다. x 3. 따라서 배열에는 k, 즉 23으로 완전히 나눌 수 있는 3개의 요소가 있습니다.

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

특정 문제를 해결하기 위해 여러 가지 접근 방식이 있을 수 있습니다. 따라서 먼저 순진한 접근 방식으로 진행할 것입니다.

  • 정수 요소의 배열과 정수 변수 k

    입력
  • 배열의 길이를 계산하고 추가 처리를 위해 데이터를 함수에 전달합니다.

  • k로 나눌 수 있는 요소의 수를 저장하기 위해 임시 변수 count 사용

  • 0부터 배열 길이까지 FOR 루프 시작

  • 루프 내에서 IF arr[i] % k =0을 확인한 다음 카운트를 1 증가시킵니다.

  • 개수 반환

  • 결과를 인쇄하십시오.

효율적인 접근

  • 정수형 벡터에 원소를 입력하고 정수형 변수 k를 취합니다.

  • k로 나눌 수 있는 요소의 수를 저장하기 위해 임시 변수 count 사용

  • vector.begin(), vector.end()를 인수로 사용하고 순회를 시작한 다음 0이면 i%k를 반환하는 내장 count_if() 함수에 대한 호출로 count를 설정합니다.

  • 결과를 인쇄하십시오.

예(순진한 접근 방식)

#include <bits/stdc++.h>
using namespace std;
int divisible_k(int arr[], int size, int k){
   int count = 0;
   for(int i = 0; i<size; i++){
      if(arr[i]%k==0){
         count++;
      }
   }
   return count;
}
int main(){
   int arr[] = {4, 2, 6, 1, 3, 8, 10, 9};
   int k = 2;
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count the number of elements in an array which are divisible by "<<k<<" are: "<<divisible_k(arr, size, k);
   return 0;
}

출력

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

Count the number of elements in an array which are divisible by 2 are: 5

예시(효율적인 접근)

#include <bits/stdc++.h>
using namespace std;
int main(){
   vector<int> vec = {4, 2, 6, 1, 3, 8, 10, 9};
   int count = count_if(vec.begin(), vec.end(), [](int i, int k = 2) { return i % k == 0; });
   cout<<"Count the number of elements in an array which are divisible by k are: "<<count;
   return 0;
}

출력

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

Count the number of elements in an array which are divisible by 2 are: 5