C++ 中查找等于其余所有元素之和的元素
在这个问题中,我们给定一个包含 n 个正值的数组 arr[]。我们的任务是找到**等于数组中所有其他元素之和的元素**。
代码描述:我们需要找到一个元素,其值等于数组中除该元素之外的所有元素的总和。
让我们举个例子来理解这个问题,
输入:arr[] = { 5, 4, 17, 1, 7 }
输出:17
解释 -
其余元素的总和为 (5 + 4 + 1 + 7) = 17,这等于剩余元素 17。
解决方案方法 -
解决这个问题的一个简单方法是利用以下事实:数组中所有元素的总和是给定元素的两倍。为此,我们将遵循以下步骤,
步骤 1:找到数组中所有元素的总和。
步骤 2:循环遍历数组的每个元素,
步骤 2.1:如果 arr[i] == sum/2。
步骤 2.1.1:如果为真。Flag = 1,退出循环。
步骤 2.2.1:如果为假,则忽略。
步骤 3:如果 flag == 1,则打印 arr[i]
步骤 4:否则,打印“未找到此类元素”。
程序说明解决方案的工作原理,
示例
#include <iostream>
using namespace std;
void findElemenetInArray(int arr[], int n) {
int arraySum = 0;
int flag = 0, i;
for (i = 0; i < n; i++)
arraySum += arr[i];
for (i = 0; i < n; i++)
if ( (2*arr[i]) == arraySum ) {
flag = 1;
break;
}
if(flag)
cout<<arr[i];
else
cout<<"No such element is found!";
}
int main() {
int n = 5;
int arr[n] = { 5, 4, 7, 1, 17 };
findElemenetInArray(arr, n);
return 0;
}输出
17
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP