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

ค้นหาผลรวมของซีรีส์ 1-2+3-4+5-6+7....ใน C++


ในปัญหานี้ เราได้รับค่าจำนวนเต็ม N งานของเราคือ หาผลรวมของชุดที่ 1 - 2 + 3 - 4 + 5 - 6 + 7 ไม่เกิน n เงื่อนไข .

ซีรี่ย์คือ 1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10...

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

Input : N = 4
Output : -2

คำอธิบาย

1 - 2 + 3 - 4 = -2

แนวทางการแก้ปัญหา

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

ซีรีส์คือ

1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 + 9 - 10...

หาผลรวมของอนุกรมสำหรับค่าบางค่ากัน

ผลรวม(1) =1

ผลรวม(2) =1 - 2 =-1

ผลรวม(3) =1 - 2 + 3 =2

ผลรวม(4) =1 - 2 + 3 - 4 =-2

ผลรวม(5) =1 - 2 + 3 - 4 + 5 =3

ผลรวม(6) =1 - 2 + 3 - 4 + 5 - 6 =-3

ผลรวม(7) =1 - 2 + 3 - 4 + 5 - 6 + 7 =4

ผลรวม(8) =1 - 2 + 3 - 4 + 5 - 6 + 7 - 8 =-4

สำหรับที่นี่ เราสามารถสรุปได้ว่าผลรวมสามารถกำหนดเป็น

ผลรวม =+(n+1)/2 ถ้า n เป็นเลขคี่

ผลรวม =-(n)/2 ถ้า n เป็นคู่

ตัวอย่าง

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

#include<iostream>
using namespace std;
int calcSumNTerms(int n) {
   if(n%2 == 0)
      return ((-1)*(n/2));
   return ((n+1)/2);
}
int main() {
   int n = 156;
   cout<<"The sum of series upto n terms is "<<calcSumNTerms(n); 
   return 0;
}

ผลลัพธ์

The sum of series upto n terms is -78