정수 배열이 제공됩니다. 목표는 모든 요소의 합과 해당 요소의 절대 차이가 변수 k보다 크도록 숫자를 계산하는 것입니다.
배열 요소의 합을 구하여 이를 수행합니다. 이제 각 요소 arr[i]에 대해 −
를 확인합니다.sum-2(arr[i])>k, sum에는 이미 arr[i]가 포함되어 있으므로 두 번 뺍니다. true인 경우 카운트가 증가합니다.
예를 들어 이해합시다.
입력 - arr[]={ 1,2,3,0,3,2,0,1 }, k=10
출력 − 요소 수:2
설명 − 요소의 합은 12입니다.
12-1-1=10, 12-2-2=8, 12-3-3=6, 12-0-0=12.
단 12> 10이므로 2개의 요소(0)에 대해 조건이 참입니다.
입력 - arr[]={ 1,1,1,1,1 } k=10
출력 − 요소 수:0
설명 − 요소의 합은 5입니다.
각 1 5-1-1=3 <10 .
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
임의의 숫자로 초기화된 정수 배열 arr[]을 사용합니다.
-
함수 numberCount(int arr[], int n, int k)는 배열과 그 길이를 입력으로 받아 다른 모든 요소의 합과 절대 차이가 k보다 큰 요소의 개수를 반환합니다.
-
초기 카운트를 0으로 합니다.
-
배열의 모든 요소의 합을 합으로 계산합니다.
-
이제 i=0에서 i
까지 전체 배열을 trvaser -
각 요소 arr[i]에 대해 sum-arr[i]-arr[i]>k이면 카운트를 증가시킵니다.
-
최종 결과로 루프의 끝에서 카운트를 반환합니다.
예시
#include <bits/stdc++.h> #include <math.h> using namespace std; int numberCount(int arr[],int n, int k){ int count=0; int sum=0; int i; for(i=0;i<n;i++) { sum+=arr[i]; } for(int i=0;i<n;i++){ if( abs(sum-arr[i]-arr[i]) > k ){ count++; } } return count; } int main(){ int Arr[]={ 1,2,3,4 }; int len=sizeof(Arr)/sizeof(Arr[0]); int K=5; cout<<endl<<"Count of elements: "<<numberCount(Arr,len,K); return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
Count of elements: 2