ในปัญหานี้เราจะมาดูกันว่าเราจะหาผลรวมลูกบาศก์ของจำนวนธรรมชาติ n ตัวแรกได้อย่างไร เราใช้ one for loop ที่รันตั้งแต่ 1 ถึง n ในแต่ละขั้นตอน เราจะคำนวณลูกบาศก์ของพจน์นั้นแล้วบวกกับผลรวม โปรแกรมนี้ใช้เวลา O(n) ในการดำเนินการให้เสร็จสิ้น แต่ถ้าเราต้องการแก้ปัญหาใน O(1) หรือเวลาคงที่ เราก็สามารถใช้สูตรอนุกรมนี้ −
อัลกอริทึม
cubeNNatural(n)
begin sum := 0 for i in range 1 to n, do sum := sum + i^3 done return sum end
ตัวอย่าง
#include<stdio.h> long cube_sum_n_natural(int n) { long sum = 0; int i; for (i = 1; i <= n; i++) { sum += i * i * i; //cube i and add it with sum } return sum; } main() { int n; printf("Enter value of n: "); scanf("%d", &n); printf("Result is: %ld", cube_sum_n_natural(n)); }
ผลลัพธ์
Enter value of n: 6 Result is: 441