배열은 동일한 데이터 유형의 요소 시퀀스입니다. 이 문제에서 우리는 문제를 해결하기 위해 정수 배열을 고려할 것입니다. 이 문제에서 우리는 요소를 진행하는 요소에서 요소를 나누어 찾은 요소의 합을 찾을 것입니다.
이 문제를 더 잘 이해하기 위해 몇 가지 예를 들어보겠습니다. −
예시 1 -
Array : 3 , 5 ,98, 345 Sum : 26
설명 − 3 + 5/3 + 98/5 + 345/98 =3 + 1 + 19 + 3 =26
각 요소를 선행 요소로 나누고 합계를 찾기 위해 나누기의 정수 부분만 고려했습니다.
예시 2 -
Array : 2, 5 , 8, 11, 43 , 78 , 234 Sum : 13
설명 − 2 + 2 + 1 + 1 + 3 + 1 + 3 =13
알고리즘
이 알고리즘은 배열의 각 요소를 순회합니다. 그리고 그것을 앞의 요소로 나눕니다. 그런 다음 sum 변수에 몫 값을 더합니다.
Input : Array - int arr[] Output : int sum
Step 1: Initialize sum = arr[0] Step 2: for(i = 1 to size of arr ) follow step 3 Step 3 : sum = sum + (arr[i]/arr[i-0] ) Step 4: print the sum
이것은 이전 숫자에서 숫자를 나눈 후 배열의 합을 찾는 쉬운 4단계 알고리즘입니다. . 논리에 따르면 첫 번째 요소에는 요소가 없으므로 배열의 첫 번째 요소로 합계를 초기화했는데 이는 어떤 요소로도 나눌 수 없음을 의미합니다. 따라서 for 루프를 고려하면 잘못된 -1 인덱스의 요소에 액세스하므로 오류가 발생합니다.
예시
#include<stdio.h> int main() { int arr[] = { 2, 5 , 8, 11, 43 , 78 , 234 }; int n = sizeof(arr)/sizeof(arr[0]); int sum = arr[0]; for (int i = 1; i < n; i++) { sum += arr[i] / arr[i - 1]; } printf("The sum of array after dividing number from previous numbers is %d \n", sum); return 0; }
출력
The sum of array after dividing number from previous number is 13.