将上一个数字除以后的数组总和?

在这里,我们将看到一个有趣的问题。我们将取一个数组,然后将每个元素除以先前的元素,然后取每个元素来求和。让我们考虑一个数组为{5,6,7,2,1,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