Trong bài toán này, chúng ta được cung cấp một mảng arr [] gồm n giá trị dương. Nhiệm vụ của chúng ta là tìm phần tử bằng tổng của tất cả các phần tử còn lại của mảng.
Mô tả mã: Chúng ta cần tìm phần tử có giá trị bằng tổng tất cả các phần tử của mảng ngoại trừ phần tử đó.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào: arr [] ={5, 4, 17, 1, 7}
Đầu ra: 17
Giải thích -
Tổng của phần tử còn lại là (5 + 4 + 1 + 7) =17, bằng phần tử còn lại 17.
Phương pháp tiếp cận giải pháp -
Một giải pháp đơn giản cho vấn đề là sử dụng thực tế là tổng tất cả các phần tử của mảng gấp đôi phần tử đã cho. Đối với điều này, chúng tôi sẽ làm theo các bước sau,
Bước 1: Tìm tổng tất cả các phần tử của mảng.
Bước 2: vòng lặp cho từng phần tử của mảng,
Bước 2.1: nếu arr [i] ==sum / 2.
Bước 2.1.1: nếu đúng. Flag =1, ngắt vòng lặp.
Bước 2.2.1: nếu sai, bỏ nó đi.
Bước 3: Nếu cờ ==1, hãy in arr [i]
Bước 4: Nếu không, hãy in “ Không tìm thấy phần tử như vậy ”.
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
Ví dụ
#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; }
Đầu ra
17