數字之前的除法後陣列求和?


這裡我們將看到一個有趣的問題。我們將取一個數組,然後透過取陣列中的每個元素並將其除以前面的元素來計算和。讓我們考慮一個數組 {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

更新時間:2019-08-01

85 次瀏覽

開啟您的 職業生涯

完成課程即可獲得認證

開始
廣告