Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tổng của mảng sau khi chia các số từ trước?

Ở đây chúng ta sẽ thấy một vấn đề thú vị. Chúng ta sẽ lấy một mảng, sau đó tìm tổng bằng cách lấy từng phần tử sau khi chia nó cho các phần tử trước đó. Chúng ta hãy coi một mảng là {5, 6, 7, 2, 1, 4}. Khi đó kết quả sẽ là 5 + (6/5) + (7/6) + (2/7) + (1/2) + (4/1) =12.15238. Hãy để chúng tôi xem thuật toán để có được khái niệm.

Thuật toán

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

Ví dụ

#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);
}

Đầu ra

Sum : 12.1524