কম্পিউটার টিউটোরিয়াল

C++-এ দেওয়া সংখ্যা প্রথম n প্রাকৃতিক সংখ্যার যোগফল কিনা তা খুঁজুন


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

সমস্যা বিবরণ: এখানে আমাদের যাচাই করতে হবে দেওয়া সংখ্যাটি প্রথম n প্রাকৃতিক সংখ্যার যোগফল কিনা।

উদাহরণ দিয়ে বুঝি,

ইনপুট: num = 55

আউটপুট: হ্যাঁ, 10

ব্যাখ্যা:

৫৫ হল প্রথম ১০ প্রাকৃতিক সংখ্যার যোগফল, ১+২+৩+৪+৫+৬+৭+৮+৯+১০।

সমাধানের পদ্ধতি:

সহজ পদ্ধতিতে n প্রাকৃতিক সংখ্যার যোগফল বের করুন যতক্ষণ না সেটি num-এর সমান বা বড় হয়।

  • যোগফল num-এর সমান হলে n রিটার্ন করুন।
  • যদি যেকোনো n-এ যোগফল num-এর চেয়ে বড় হয়, -1 রিটার্ন করুন।

সমাধান দর্শানোর প্রোগ্রাম,

উদাহরণ

#include <iostream> 
using namespace std; 

int isNatSum(int num){ 
    int sum = 0; 
    for (int n = 1; sum < num; n++) { 
        sum += n; 
        if (sum == num) 
            return n; 
    } 
    return -1; 
} 

int main(){ 
    int num = 55; 
    int n = isNatSum(num); 
    if(n == -1) 
        cout << "The value is not sum of natural numbers"; 
    else 
        cout << "The value is a sum of first " << n << " natural numbers"; 
    return 0; 
}

আউটপুট

The value is a sum of first 10 natural numbers

এই পদ্ধতি ভালো হলেও আমরা গাণিতিক সূত্র ব্যবহার করে আরও দক্ষতার সাথে সমাধান করতে পারি।

প্রথম n প্রাকৃতিক সংখ্যার যোগফলের সূত্র:

যোগফল = n*(n+1)/2

আমাদের যোগফল দেওয়া আছে, n বের করতে হবে।

দ্বিঘাত সমীকরণ তৈরি করুন:

=> 2*যোগফল = n² + n

=> n² + n - 2*যোগফল = ০, দ্বিঘাত সমীকরণ

এই সমীকরণের সমাধান:

সমাধান দর্শানোর প্রোগ্রাম,

উদাহরণ

#include <iostream> 
#include <math.h> 
using namespace std; 

int isNatSum(int num){ 
    int n = ( -1 + sqrt(1 + (8*num)) ) / 2; 
    if(ceil(n) == floor(n)){ 
        return n; 
    } 
    return -1; 
} 

int main(){ 
    int num = 55; 
    int n = isNatSum(num); 
    if(n == -1) 
        cout << "The value is not sum of natural numbers"; 
    else 
        cout << "The value is a sum of first " << n << " natural numbers"; 
    return 0; 
}

আউটপুট

The value is a sum of first 10 natural numbers

  1. ফিবোনাচ্চি সংখ্যাগুলোর বর্গের যোগফল C++-এ

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

  3. C++-এ প্রথম n প্রাকৃতিক সংখ্যার বর্গের যোগফল (Sum of Squares)

  4. রিকার্সন ব্যবহার করে প্রাকৃতিক সংখ্যাগুলোর যোগফল (Sum of Natural Numbers) বের করার C++ প্রোগ্রাম