हमें पूर्णांकों की एक सरणी दी गई है। लक्ष्य संख्याओं को इस तरह गिनना है कि सभी तत्वों के योग और उस तत्व के बीच पूर्ण अंतर चर k से अधिक हो।
हम सरणी के तत्वों का योग प्राप्त करके ऐसा करेंगे। अब प्रत्येक तत्व arr[i], checkif −
. के लिएsum-2(arr[i])>k, क्योंकि sum में पहले से ही arr शामिल है [i] इसलिए इसे दो बार घटाएं। अगर सही वेतन वृद्धि गिनती है।
आइए उदाहरणों से समझते हैं।
इनपुट - गिरफ्तारी [] ={ 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) के लिए शर्त सत्य है।
इनपुट - गिरफ्तारी [] ={ 1,1,1,1,1 } k=10
आउटपुट - तत्वों की संख्या:0
स्पष्टीकरण - तत्वों का योग 5
. हैप्रत्येक 1 5-1-1=3 <10 .
. के लिएनीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं arr[] यादृच्छिक संख्याओं के साथ आरंभ किया गया।
-
फ़ंक्शन नंबरकाउंट (int arr [], int n, int k) इनपुट के रूप में सरणी और उसकी लंबाई लेता है और उन तत्वों की गिनती देता है जिनके अन्य सभी तत्वों के योग के साथ पूर्ण अंतर k से अधिक है।
-
प्रारंभिक गणना 0 के रूप में लें।
-
सरणी के सभी तत्वों के योग की गणना योग के रूप में करें।
-
अब i=0 से i
. तक संपूर्ण सरणी को ट्रैवसर करें -
प्रत्येक तत्व 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