在C ++中与所有其他元素的和的绝对差大于k的元素数
我们得到了一个整数数组。目的是对数字进行计数,以使所有元素之和与该元素之和的绝对差大于变量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
以上是 在C ++中与所有其他元素的和的绝对差大于k的元素数 的全部内容, 来源链接: utcz.com/z/357905.html