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

C++-এ একটি সংখ্যাকে কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা গণনা


একটি ইন্টিজার n ইনপুট হিসেবে দেওয়া আছে। লক্ষ্য হলো num-কে দুটি বা অধিক কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা বের করা। উদাহরণস্বরূপ, যদি n = 3 হয়, তবে এটি যোগফল (১+২) হিসেবে প্রকাশ করা যায়, তাই মোট ১ পদ্ধতি।

উদাহরণ ১

ইনপুট

num=6

আউটপুট

একটি সংখ্যাকে কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা: 1

ব্যাখ্যা

'num' কে কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতি: ১+২+৩

উদাহরণ ২

ইনপুট

num=19

আউটপুট

একটি সংখ্যাকে কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা: 1

ব্যাখ্যা

'num' কে কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতি: ৯+১০

প্রয়োগ করা পদ্ধতি

এই পদ্ধতিতে সংখ্যাটিকে (a + a+1 + a+2...+ a+i) যোগফল হিসেবে রিপ্রেজেন্ট করা হয়।

যেটি হয়ে যায় a*(L+1) + 1+2+3+4...+i = a*(i+1) + i*(i+1)/2 (প্রাকৃতিক সংখ্যার যোগফল)। num = a*(i+1) + i*(i+1)/2। a = [num - (i)*(i+1)/2] / (i+1)।

এটি করব i=1 থেকে i*(i+1)/2 < num পর্যন্ত।

  • ইনপুট হিসেবে ইন্টিজার num নিন।

  • sum_consecutive(int num) ফাংশনটি পদ্ধতির সংখ্যা রিটার্ন করে।

  • আরম্ভিক কাউন্ট ০ রাখুন।

  • অস্থায়ী ভেরিয়েবল res ফ্লোট হিসেবে নিন।

  • for লুপ দিয়ে i=1 থেকে i*(i+1)/2 < num পর্যন্ত ট্রুভার্স করুন।

  • [num - (i)*(i+1)/2] / (i+1) ক্যালকুলেট করে res-এ রাখুন।

  • যদি res ইন্টিজার হয় (res - (int)res == 0), তবে কাউন্ট বাড়ান।

  • সকল লুপ শেষে count-এ পদ্ধতির সংখ্যা থাকবে।

  • count রিটার্ন করুন ফলাফল হিসেবে।

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

int sum_consecutive(int num) {
    int count = 0; 
    int temp = num * 2; 
    float res; 
    
    for (int i = 1; i * (i + 1) < temp; i++) {
        int store = i + 1; 
        res = (1.0 * num - (i * (i + 1)) / 2) / store; 
        float check = res - (int)res; 
        
        if(check == 0.0) {
            count++; 
        } 
    } 
    
    return count; 
} 

int main() { 
    int num = 20; 
    cout << "একটি সংখ্যাকে কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা: " << sum_consecutive(num) << endl; 
    return 0; 
}

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি আসবে:

একটি সংখ্যাকে কনসিকিউটিভ প্রাকৃতিক সংখ্যার যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা: 1

  1. C++-এ একটি সেটকে k সাবসেটে ভাগ করার পদ্ধতির সংখ্যা গণনা

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

  3. C++ প্রোগ্রাম: সংখ্যা ২টি ট্রায়্যাঙ্গুলার নাম্বারের যোগফল কিনা চেক

  4. C++ প্রোগ্রাম: সংখ্যা কনsekutিভ নাম্বারগুলোর যোগফল কিনা চেক