ในปัญหานี้เราจะมาดูกันว่าเราจะหาผลรวมกำลังสองของจำนวนธรรมชาติ n ตัวแรกได้อย่างไร เราใช้ one for loop ที่รันตั้งแต่ 1 ถึง n ในแต่ละขั้นตอน เราจะคำนวณกำลังสองของเทอมนั้นแล้วบวกมันเข้ากับผลรวม โปรแกรมนี้ใช้เวลา O(n) ในการดำเนินการให้เสร็จสิ้น แต่ถ้าเราต้องการแก้ปัญหาใน O(1) หรือเวลาคงที่ เราก็สามารถใช้สูตรอนุกรมนี้ −
อัลกอริทึม
squareNNatural(n)
begin sum := 0 for i in range 1 to n, do sum := sum + i^2 done return sum end
ตัวอย่าง
#include<iostream> using namespace std; long square_sum_n_natural(int n) { long sum = 0; for (int i = 1; i <= n; i++) { sum += i * i; //square i and add it with sum } return sum; } main() { int n; cout << "Enter N: "; cin >> n; cout << "Result is: " << square_sum_n_natural(n); }
ผลลัพธ์
Enter N: 4 Result is: 30