在这个问题中,我们得到了一个由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: 如果为true。标志= 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<<"找不到这样的元素!"; } int main() { int n = 5; int arr[n] = { 5, 4, 7, 1, 17 }; findElemenetInArray(arr, n); return 0; }输出结果
17