양의 정수 배열과 정수 변수 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