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

এক সংখ্যক তিনটি অংশে ভাগ করার পদ্ধতির সংখ্যা গণনা C++-এ


একটি ধনাত্মক সংখ্যা N দেওয়া আছে (১ থেকে ৫০০০ পর্যন্ত)। লক্ষ্য হল N কে তিনটি ধনাত্মক অংশে ভাগ করার কত পদ্ধতি আছে। অংশগুলো সমান বা অসমান হতে পারে।

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

উদাহরণ

ইনপুট: N=5

আউটপুট: N কে ৩ অংশে ভাগ করার পদ্ধতি: ২

ব্যাখ্যা: ৫ = (১,১,৩) এবং (১,২,২)

ইনপুট: N=9

আউটপুট: পদ্ধতির সংখ্যা: ৭

ব্যাখ্যা: (১,১,৭), (১,২,৬), (১,৩,৫), (১,৪,৪), (২,২,৫), (২,৩,৪), (৩,৩,৩)

প্রোগ্রামে ব্যবহৃত পদ্ধতি
  • পূর্ণসংখ্যা N (১-৫০০০) নেওয়া হয়।
  • divideN(int n) ফাংশন n নিয়ে তিনটি অংশে ভাগ করার পদ্ধতির সংখ্যা রিটার্ন করে।
  • তিনটি নেস্টেড লুপ: i=1 থেকে n-১, j=i থেকে n-১, k=j থেকে n-১।
  • যদি i+j+k == n হয়, count বাড়ানো হয়।
  • শেষে count রিটার্ন করা হয়।
C++ কোড উদাহরণ
#include 
using namespace std;

int divideN(int n){
    int count = 0;
    for (int i = 1; i < n; i++){
        for (int j = i; j < n; j++){
            for (int k = j; k < n; k++){
                if(i + j + k == n){
                    count++;
                }
            }
        }
    }
    return count;
}

int main(){
    int N = 500;
    cout << endl << "N কে ৩ অংশে ভাগ করার পদ্ধতি: " << divideN(N);
    return 0;
}
আউটপুট

উপরোক্ত কোড রান করলে আউটপুট (N=500 এর জন্য):

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

  2. সি++-এ আয়তক্ষেত্রে বর্গের সংখ্যা গণনা

  3. সংখ্যাকে চারটি অংশে ভাগ করার পদ্ধতির সংখ্যা যাতে a=c এবং b=d C++-তে

  4. সি++ প্রোগ্রাম: সংখ্যা বিভাজ্য করে এমন অঙ্কগুলোর গণনা (Count of Digits Dividing the Number)