Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ cho Tổng bình phương của n số tự nhiên đầu tiên?

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 -

Chương trình C ++ cho Tổng bình phương của n số tự nhiên đầu tiên?

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