เราจะเห็นปัญหาที่น่าสนใจอย่างหนึ่ง เราจะเอาหนึ่งอาร์เรย์ แล้วหาผลรวมโดยนำแต่ละองค์ประกอบมาหารด้วยองค์ประกอบก่อนหน้า ให้เราพิจารณาอาร์เรย์คือ {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