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