Trong bài toán này, chúng ta sẽ xem làm thế nào chúng ta có thể lấy tổng bình phương của n số tự nhiên đầu tiên. Ở đây chúng tôi đang sử dụng một vòng lặp for, chạy từ 1 đến n. Trong mỗi bước, chúng tôi tính bình phương của số hạng và sau đó cộng nó vào tổng. Chương trình này mất O (n) thời gian để hoàn thành. Nhưng nếu chúng ta muốn giải điều này trong O (1) hoặc thời gian không đổi, chúng ta có thể sử dụng công thức chuỗi này -
Thuật toán
squareNNatural (n)
begin sum := 0 for i in range 1 to n, do sum := sum + i^2 done return sum end
Ví dụ
#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);
} Đầu ra
Enter N: 4 Result is: 30