배열 동일한 데이터 유형의 여러 요소를 저장하는 데이터 구조입니다. 전체 값 세트를 한 번에 저장할 수 있습니다. 그러나 길이는 미리 정의해야 합니다.
이 합 배열 퍼즐에서 우리는 n이라고 하는 일정한 크기의 배열 A1이 주어집니다. 이 퍼즐을 풀기 위해 위치가 사용되는 요소를 제외한 배열의 모든 요소의 합을 저장하는 S1이라는 배열을 만들 것입니다. 예를 들어, S1[3]이 계산되는 경우 위치 4에 있는 요소를 제외한 A1의 모든 요소의 합을 찾습니다.
예시 -
Array A1 = {1,2,3,4,6} Output S1 = {15,14,13,12,10}
설명 − 합계 배열을 계산하기 위해 초기 배열의 각 요소를 합계 변수에 추가합니다. 합계 배열과 동일한 숫자의 값을 수락합니다. 즉, 합계 배열의 첫 번째 요소에 대해 배열의 첫 번째 요소를 제외한 모든 요소의 합을 계산하고 전체 배열에 대해서도 동일하게 계산합니다. 이 논리를 사용하여 sum 배열의 각 요소에 대한 값을 계산해 보겠습니다.
Sum[0], 0 번째 에 있는 요소를 제외한 요소의 합을 계산합니다. 인덱스. 그래서,
합계[0] =2+3+4+6 =15
마찬가지로 sum[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