Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C ++ สำหรับผลรวมของกำลังสองของจำนวนธรรมชาติ n ตัวแรก?


ในปัญหานี้เราจะมาดูกันว่าเราจะหาผลรวมกำลังสองของจำนวนธรรมชาติ n ตัวแรกได้อย่างไร เราใช้ one for loop ที่รันตั้งแต่ 1 ถึง n ในแต่ละขั้นตอน เราจะคำนวณกำลังสองของเทอมนั้นแล้วบวกมันเข้ากับผลรวม โปรแกรมนี้ใช้เวลา O(n) ในการดำเนินการให้เสร็จสิ้น แต่ถ้าเราต้องการแก้ปัญหาใน O(1) หรือเวลาคงที่ เราก็สามารถใช้สูตรอนุกรมนี้ −

โปรแกรม C ++ สำหรับผลรวมของกำลังสองของจำนวนธรรมชาติ n ตัวแรก?

อัลกอริทึม

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