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