我们得到了一个整数数组。目的是对数字进行计数,以使所有元素之和与该元素之和的绝对差大于变量k。
我们将通过获取数组元素的总和来实现。现在对于每个元素arr [i],检查是否-
sum-2(arr [i])> k,因为sum已包含arr [i],因此将其减去两次。如果为真,则递增计数。
让我们通过示例来理解。
输入− 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个元素(0s),条件为true。
输入− 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 <n遍历整个数组。
对于每个元素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