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

C++-এ N ডিজিটের সংখ্যা যাতে বিজোড় সংখ্যক শূন্য থাকে তা গণনা


আমাদের একটি সংখ্যা N ইনপুট হিসেবে দেওয়া আছে। লক্ষ্য হলো এমন সব N-ডিজিটের সংখ্যা বের করা যাতে শূন্য (০) এর সংখ্যা বিজোড় (odd) হয়। সংখ্যাগুলোতে অগ্রগামী শূন্যও থাকতে পারে (leading zeros), যেমন N=3 হলে 000, 011, 012... 990 সহ সব সংখ্যা বিবেচনা করা হবে।

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

ইনপুট − N=3

আউটপুট − N ডিজিটের বিজোড় শূন্য বিশিষ্ট সংখ্যা: ২৪৪

ব্যাখ্যা − সব ৩ ডিজিটের সংখ্যা হবে যেন: ০০০, ০১১, ০১২, ০১৩... ৯৯০।

ইনপুট − N=5

আউটপুট − N ডিজিটের বিজোড় শূন্য বিশিষ্ট সংখ্যা: ৩৩৬১৬

ব্যাখ্যা − সব ৫ ডিজিটের সংখ্যা: ০০০০০, ০০০১১, ০০০১২... ৯৯৯৯০।

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

প্রথমে মোট N-ডিজিটের সংখ্যা T = 10^N - 1। তারপর জোড় শূন্য বিশিষ্ট N-ডিজিট সংখ্যা E = 10^N - 8^N। বাকি বিজোড় শূন্য বিশিষ্ট সংখ্যা (T - E) / 2।

  • ইন্টিজার N ইনপুট নিন।
  • count_odd(int N) ফাংশন N নিয়ে বিজোড় শূন্য বিশিষ্ট N-ডিজিট সংখ্যা রিটার্ন করে।
  • মোট N-ডিজিট সংখ্যা: total = pow(10, N)।
  • জোড় শূন্য বিশিষ্ট: even = pow(8, N)। (সংশোধন: ওরিজিনাল কোডে even = pow(8, N) ব্যবহার করা হয়েছে, 10^N - 8^N নয়। এটি একটি ভুল হতে পারে। সঠিক ফর্মুলা: বিজোড় শূন্য = (10^N - 8^N)/2)।
  • বিজোড় শূন্য: odd = (total - even) / 2।
  • odd রিটার্ন করুন।

উদাহরণ

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

int count_odd(int N) {
    int total = pow(10, N);
    int even = pow(8, N);
    int odd = (total - even) / 2;
    return odd;
}

int main() {
    int N = 4;
    cout << "Count of Numbers with N digits which consists of odd number of 0's are: " << count_odd(N);
    return 0;
}

আউটপুট

Count of Numbers with N digits which consists of odd number of 0's are: 2952
  1. C++-এ ফ্যাক্টোরিয়ালে অঙ্ক গণনা

  2. C++-এ অদ্বিতীয় ডিজিটযুক্ত সংখ্যা গণনা

  3. সি++ প্রোগ্রাম: D দিয়ে বিভাজ্য N অঙ্কের সংখ্যা খুঁজে বের করা

  4. পাইথনে সম সংখ্যক ডিজিট বিশিষ্ট নম্বর খুঁজুন (Find Numbers with Even Number of Digits in Python)