Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

이전에서 숫자를 나눈 후 배열 합계?

<시간/>

여기서 우리는 한 가지 흥미로운 문제를 보게 될 것입니다. 우리는 하나의 배열을 취하고 각 요소를 이전 요소로 나눈 후 각 요소를 취하여 합을 찾습니다. 배열이 {5, 6, 7, 2, 1, 4}라고 가정해 보겠습니다. 그러면 결과는 5 + (6 / 5) + (7 / 6) + (2 / 7) + (1 / 2) + (4 / 1) =12.15238이 됩니다. 개념을 얻기 위한 알고리즘을 살펴보겠습니다.

알고리즘

divSum(arr, n)

begin
   sum := arr[0]
   for i := 1 to n-1, do
      sum := sum + arr[i] / arr[i-1]
   done
   return sum
end

예시

#include <iostream>
using namespace std;
float divSum(int arr[], int n){
   float sum = arr[0];
   for(int i = 1; i<n; i++){
      sum += arr[i] / float(arr[i - 1]);
   }
   return sum;
}
int main() {
   int arr[6] = {5, 6, 7, 2, 1, 4};
   int n = 6;
   cout << "Sum : " << divSum(arr, n);
}

출력

Sum : 12.1524