यहां हम ऐरे से संबंधित एक रोचक समस्या देखेंगे। n तत्वों वाला एक ऐरे है। हमें n तत्वों का एक और ऐरे बनाना है। लेकिन दूसरे ऐरे का i-th स्थान पहले ऐरे के i-th तत्व को छोड़कर सभी तत्वों का योग रखेगा। और एक प्रतिबंध है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते।
यदि हम घटाव ऑपरेशन का उपयोग कर सकते हैं, तो हम इस समस्या को आसानी से हल कर सकते हैं, सभी तत्वों का योग प्राप्त करके, फिर पहले ऐरे के i-th तत्व को घटाकर दूसरे ऐरे के i-th स्थान में स्टोर कर सकते हैं।
यहां हम हर बार तत्वों को जोड़कर हल कर रहे हैं, और i स्थिति के तत्व को अनदेखा कर रहे हैं, i के लिए 0 से n-1 तक। एल्गोरिदम देखें।
एल्गोरिदम
sumArray(arr, n)
begin
res नामक आकार n का एक ऐरे परिभाषित करें
arr के सभी तत्वों i के लिए, do
sum := 0
arr के सभी तत्वों j के लिए, do
यदि i और j समान नहीं हैं, तो
sum := sum + arr[j]
end if
done
res[i] = sum
done
return res
end
उदाहरण
#include <iostream>
using namespace std;
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void sumArray(int arr[], int resArr[], int n) {
for (int i = 0; i < n; i++) {
int sum = 0;
for (int j = 0; j < n; j++) {
if (i != j) {
sum += arr[j];
}
}
resArr[i] = sum;
}
}
int main() {
int myArr[7] = {5, 4, 7, 6, 9, 2, 3};
int resArr[7];
cout << "Initial Array: ";
printArray(myArr, 7);
sumArray(myArr, resArr, 7);
cout << "Final Array: ";
printArray(resArr, 7);
return 0;
}
आउटपुट
Initial Array: 5 4 7 6 9 2 3 Final Array: 31 32 29 30 27 34 33