কম্পিউটার

C++ এ প্রথম n প্রাকৃতিক সংখ্যার m-th সমষ্টি খুঁজুন


এই সমস্যায়, আমাদের দুটি পূর্ণসংখ্যা m এবং n দেওয়া হয়েছে। আমাদের কাজ হল প্রথম n প্রাকৃতিক সংখ্যার m-th যোগফল খুঁজে বের করা।

সমস্যা বর্ণনা: আমরা n প্রাকৃতিক সংখ্যা m গুণের যোগফলের যোগফল খুঁজে পাব। যোগফল সূত্র দ্বারা দেওয়া হয়,

যদি (মি> 1),

সমষ্টি(n, m) =যোগফল( যোগফল(n, (m-1)), 1 )

যদি (m =1)

সমষ্টি(n, m) =যোগফল(n, 1) =n প্রাকৃতিক সংখ্যার যোগফল

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

ইনপুট: m =4, n =2

আউটপুট: 231

ব্যাখ্যা:

যোগফল(2, 4) =যোগফল ( যোগফল(2, 3), 1 )

=যোগফল ( যোগফল ( যোগফল (2, 2), 1) , 1 )

=যোগফল ( যোগফল ( যোগফল ( যোগফল ( 2, 1), 1) , 1 , 1)

=যোগফল ( যোগফল ( যোগফল (3, 1) , 1 ), 1)

=যোগফল ( যোগফল ( 6 , 1 ), 1)
=যোগফল (21, 1)

=231

সমাধান পদ্ধতি -

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

একটি আরও কার্যকর পদ্ধতি হল n স্বাভাবিক সংখ্যার যোগফলকে m বার কল করা হবে প্রতিবার পুনরাবৃত্তি করার সময় আগের যোগফলের সাথে মান আপডেট করা।

অ্যালগরিদম:

ধাপ 1: যোগফলের সাথে যোগফলের মান আপডেট করুন sum =sum(n, m-1)* (sum(n, m-1)+1) / 2 যদি m এর সমষ্টির মান একের বেশি হয়।

ধাপ 2: যদি m =1 এর মান হয়, তাহলে যোগফল =n * (n+1) /2।

ধাপ 3: ফেরত যোগফল।

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

উদাহরণ

#include <iostream>
using namespace std;

int calcSumN(int n, int m) {
   
   if (m == 1)
      return (n * (n + 1) / 2);
   return (calcSumN(n, m-1) * (calcSumN(n, m-1) + 1) / 2);
}

int main() {
   
   int n = 4;
   int m = 6;
   cout<<m<<"-th summation of first "<<n<<" natural numbers is "<<calcSumN(n, m);
   return 0;
}

আউটপুট

6-th summation of first 4 natural numbers is 125230148

  1. প্রথম n প্রাকৃতিক সংখ্যার ঘনক্ষেত্রের যোগফলের জন্য C++ প্রোগ্রাম?

  2. প্রথম n প্রাকৃতিক সংখ্যার বর্গের সমষ্টির জন্য C++ প্রোগ্রাম?

  3. Recursion ব্যবহার করে প্রাকৃতিক সংখ্যার যোগফল খুঁজে পেতে C++ প্রোগ্রাম

  4. প্রাকৃতিক সংখ্যার যোগফল গণনা করার জন্য C++ প্রোগ্রাম