在这里,我们将看到一个有趣的问题。我们将取一个数组,然后将每个元素除以先前的元素,然后取每个元素来求和。让我们考虑一个数组为{5,6,7,2,1,1,4}。然后结果将是5 +(6/5)+(7/6)+(2/7)+(1/2)+(4/1)= 12.15238。让我们看一下获得概念的算法。
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