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

C++-এ সংখ্যা N-এর রোটেশন গুলোর মধ্যে বিজোড় ও জোড় সংখ্যা গণনা


আমাদের একটি সংখ্যা N দেওয়া আছে। লক্ষ্য হলো N-এর রোটেশন গুলোর মধ্যে কতগুলো বিজোড় (odd) এবং কতগুলো জোড় (even) সংখ্যা তৈরি হয়। যদি N = ১২৩ হয়, তবে এর রোটেশন গুলো: ১২৩, ৩২১, ১৩২। বিজোড় রোটেশন: ১২৩ এবং ৩২১ (২টি), জোড় রোটেশন: ১৩২ (১টি)।

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

ইনপুট − N = 54762

আউটপুট −

N-এর বিজোড় রোটেশন সংখ্যা: ২

N-এর জোড় রোটেশন সংখ্যা: ৩

ব্যাখ্যা − রোটেশন গুলো: ৫৪৭৬২, ২৫৪৭৬, ৬২৫৪৭, ৭৬২৫৪, ৪৭৬২৫।

জোড় রোটেশন ৩টি: ৫৪৭৬২, ২৫৪৭৬, ৭৬২৫৪

বিজোড় রোটেশন ২টি: ৬২৫৪৭, ৪৭৬২৫

ইনপুট − N = 3571

আউটপুট −

N-এর বিজোড় রোটেশন সংখ্যা: ৪

N-এর জোড় রোটেশন সংখ্যা: ০

ব্যাখ্যা − রোটেশন গুলো: ৩৫৭১, ১৩৫৭, ৭১৩৫, ৫৭১৩। সবই বিজোড়।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

সংখ্যা বিজোড় নাকি জোড় সেটা এর একক স্থানীয় ডিজিট (unit digit) দিয়ে বোঝা যায়। রোটেশনের সময় সব ডিজিট একক স্থানে আসে। তাই আমরা সংখ্যকে ১০ দিয়ে ভাগ করে একক ডিজিট বের করব এবং বিজোড়/জোড় চেক করে যথাযথ কাউন্ট বাড়াব।

  • সংখ্যা int N হিসেবে নিন।
  • Even_Odd_rotation(int N) ফাংশন N নিয়ে বিজোড় ও জোড় রোটেশন কাউন্ট প্রিন্ট করে।
  • প্রাথমিক কাউন্ট: Even_rotation এবং Odd_rotation।
  • do-while লুপে value = N % 10 দিয়ে একক ডিজিট নিন।
  • যদি value % 2 == 0 হয়, জোড়, Even_rotation বাড়ান, অন্যথায় Odd_rotation বাড়ান।
  • N = N / 10 করুন পরবর্তী ডিজিটের জন্য।
  • Even_rotation এবং Odd_rotation প্রিন্ট করুন।

উদাহরণ

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

void Even_Odd_rotation(int N) {
    int Even_rotation = 0;
    int Odd_rotation = 0;
    do {
        int value = N % 10;
        if (value % 2 == 1) {
            Odd_rotation++;
        } else {
            Even_rotation++;
        }
        N = N / 10;
    } while (N != 0);
    cout << "Count of rotations of N which are Odd are: " << Odd_rotation;
    cout << "\nCount of rotations of N which are Even are: " << Even_rotation;
}

int main() {
    int N = 341;
    Even_Odd_rotation(N);
    return 0;
}

আউটপুট

Count of rotations of N which are Odd are: 2
Count of rotations of N which are Even are: 1
  1. C++-এ জোড় ইনডেক্সে জোড় সংখ্যা এবং বিজোড় ইনডেক্সে বিজোড় সংখ্যা রাখা

  2. C++-এ বড় সংখ্যার রোটেশন গুলোর মধ্যে ৮ দিয়ে বিভাজ্য কতটি আছে তা গণনা

  3. C++-এ বড় সংখ্যার রোটেশন গুলোর মধ্যে ৪ দিয়ে বিভাজ্য কতটি আছে তা গণনা

  4. C++-এ সর্টেড ও রোটেটেড লিংকড লিস্টে রোটেশনের সংখ্যা গণনা