อาร์เรย์ เป็นโครงสร้างข้อมูลที่จัดเก็บองค์ประกอบหลายรายการในประเภทข้อมูลเดียวกัน สามารถเก็บค่าทั้งชุดได้ในคราวเดียว แต่ต้องกำหนดความยาวของมันไว้ล่วงหน้า
ในปริศนาอาเรย์ผลรวมนี้ เราจะได้รับอาร์เรย์ A1 ที่มีขนาดที่แน่นอนคือ n เพื่อไขปริศนานี้ เราจะสร้างอาร์เรย์ที่เรียกว่า S1 ซึ่งเก็บผลรวมขององค์ประกอบทั้งหมดของอาร์เรย์ ยกเว้นองค์ประกอบที่มีการใช้ตำแหน่ง ตัวอย่างเช่น หากกำลังคำนวณ S1[3] เราจะหาผลรวมขององค์ประกอบทั้งหมดของ A1 ยกเว้นองค์ประกอบที่ตำแหน่ง 4
ตัวอย่าง −
Array A1 = {1,2,3,4,6} Output S1 = {15,14,13,12,10}
คำอธิบาย − ในการคำนวณอาร์เรย์ผลรวม เราจะเพิ่มแต่ละองค์ประกอบของอาร์เรย์เริ่มต้นให้กับตัวแปรผลรวมที่ยอมรับค่าที่มีตัวเลขเดียวกันกับอาร์เรย์ผลรวม ซึ่งหมายความว่าสำหรับองค์ประกอบแรกของอาร์เรย์ผลรวม เราจะคำนวณผลรวมขององค์ประกอบทั้งหมดยกเว้นองค์ประกอบแรกของอาร์เรย์ และเหมือนกันสำหรับอาร์เรย์ทั้งหมด มาคำนวณค่าสำหรับแต่ละองค์ประกอบของอาร์เรย์ผลรวมโดยใช้ตรรกะนี้
Sum[0] เราจะคำนวณผลรวมขององค์ประกอบยกเว้นองค์ประกอบที่ 0 th ดัชนี. ดังนั้น ,
ผลรวม[0] =2+3+4+6 =15
ในทำนองเดียวกันเราจะคำนวณมูลค่าของผลรวม[1]...
ผลรวม[1] =1+3+4+6 =14
ผลรวม[2] =1+2+4+6 =13
ผลรวม[3] =1+2+3+6 =12
ผลรวม[4] =1+2+3+4 =10
ดังนั้นองค์ประกอบทั้งหมดของอาร์เรย์ผลรวมยังไม่พร้อม และอาร์เรย์ผลรวมคือผลรวม ={15,14,13,12,10}
อัลกอริทึม
Step 1 : Initialise a sum array sum[n] to zero, where n = size of the original array. Step 2 : Iterate over sum[] and do : Step 2.1 : For sum[i], run a for loop for j -> 0 to n Step 2.2 : if(i != j) {sum[i] += arr[j] } Step 3: Print sum array using std print statement.
ตัวอย่าง
#include <iostream> using namespace std; int main() { int arr[] = { 3, 6, 4, 8, 9 }; int n = sizeof(arr) / sizeof(arr[0]); int leftSum[n], rightSum[n], Sum[n], i, j; leftSum[0] = 0; rightSum[n - 1] = 0; cout<<"The original array is : \n"; for (i = 0; i < n; i++) cout << arr[i] << " "; for (i = 1; i < n; i++) leftSum[i] = arr[i - 1] + leftSum[i - 1]; for (j = n - 2; j >= 0; j--) rightSum[j] = arr[j + 1] + rightSum[j + 1]; for (i = 0; i < n; i++) Sum[i] = leftSum[i] + rightSum[i]; cout<<"\nThe sum array is : \n"; for (i = 0; i < n; i++) cout << Sum[i] << " "; return 0; }
ผลลัพธ์
The original array is : 3 6 4 8 9 The sum array is : 27 24 26 22 21