কম্পিউটার

সিরিজের যোগফল 1, 3, 6, 10… (ত্রিভুজাকার সংখ্যা) C++ এ


এই সমস্যায়, আমাদের একটি সংখ্যা n দেওয়া হয়েছে যা 1, 3, 6, 10 … (ত্রিভুজাকার সংখ্যা) সিরিজের উপাদানগুলির n দেওয়া হয়েছে। আমাদের কাজ হল সিরিজের যোগফল গণনা করার জন্য একটি প্রোগ্রাম তৈরি করা।

যোগফল গণনা করার আগে আসুন ত্রিভুজাকার সংখ্যাগুলি সম্পর্কে ব্রাশ করি।

ত্রিভুজাকার সংখ্যা হল সেই সংখ্যাগুলি যেগুলিকে ত্রিভুজ আকারে উপস্থাপন করা যায়।

একটি ত্রিভুজ এমনভাবে গঠিত হয় যাতে প্রথম সারিতে একটি বিন্দু থাকে, দ্বিতীয়টিতে দুটি থাকে ইত্যাদি।

উদাহরণ

সিরিজের যোগফল 1, 3, 6, 10… (ত্রিভুজাকার সংখ্যা) C++ এ

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

n = 4

আউটপুট

ব্যাখ্যা যোগফল =T1 + T2 + T3 + T4 =1 + 3 + 6 + 10 =20

এই সমস্যাটি সমাধান করার একটি সহজ পদ্ধতি হল সমস্ত n ত্রিভুজ সংখ্যা খুঁজে বের করা। এবং এক এক করে যোগফল ভেরিয়েবলে যোগ করা।

অ্যালগরিদম

Initialise sum = 0.
Step 1: loop for i = 0 to n. And follow steps 2 and 3
Step 2: for each value of i, calculate the triangular numbers using the formula, t[i] = ∑ i = i*(i+1)/2.
Step 3: Update sum value, sum += t[i].
Step 4: return sum.

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
   int sum = 0;
   for (int i=1; i<=n; i++)
   sum += i*(i+1)/2;
   return sum;
}
int main() {
   int n = 6;
   cout<<"Sum of the series 1, 3, 6, 10 ... (Triangular Numbers) is "<<calcSeriesSum(n);
   return 0;
}

আউটপুট

Sum of the series 1, 3, 6, 10 ... (Triangular Numbers) is 56

এটি সবচেয়ে কার্যকর সমাধান নয় কারণ এটি O(n), সময় জটিলতা নেয়।

যোগফলের জন্য সরাসরি সূত্র ব্যবহার করে আরও কার্যকর সমাধান।

Ti যদি i-তম ত্রিভুজাকার সংখ্যা হয়। তারপর,

T1 =1

T2 =3

T3 =6

Tn =n*(n+1) /2

সমস্ত ত্রিভুজাকার সংখ্যার যোগফল হল

sum = 1 + 3 + 6 + 10 + …
sum = T1 + T2 + T3 + … + Tn
sum = ∑ (Ti) , i -> 0 to n
sum = ∑ (n)(n+1)/2
sum = ½ ∑ n2 + n
sum = ½ ∑n^2 + ∑ n
sum = ½ [ (n*(n+1)*(2n+1)/6) + (n*(n+1)/2) ]
sum = ½ (n*(n+1)/2)*[ (2n+1)/3 + 1 ]
sum = ¼ [n*(n+1)]*[(2n+1+3)/3]
sum = ¼ [n*(n+1)]*[(2n+4)/3]
sum = ¼ [n*(n+1)]*[2(n+2)/3]
sum= ⅙ [n*(n+1)*(n+2)]

এটি ত্রিভুজ সংখ্যার যোগফলের সাধারণ সূত্র।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

#include <iostream>
using namespace std;
int calcSeriesSum(int n) {
   return ( ( n*(n + 1)*(n + 2) )/6);
}
int main() {
   int n = 6;
   cout<<"Sum of the series 1, 3, 6, 10 ... (Triangular Numbers) is "<<calcSeriesSum(n);
   return 0;
}

আউটপুট

Sum of the series 1, 3, 6, 10 ... (Triangular Numbers) is 56

  1. C++ এ arr[i]*i এর যোগফল সর্বাধিক করুন

  2. C++ এ প্রথম n প্রাকৃতিক সংখ্যার যোগফল

  3. C++ এ বিকল্প ফিবোনাচি সংখ্যা

  4. একটি সংখ্যাকে C++ এ 2টি ত্রিভুজাকার সংখ্যার যোগফল হিসাবে উপস্থাপন করা যায় কিনা তা পরীক্ষা করুন