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

সি++-এ M অঙ্ক থেকে N অঙ্কের ৫ দ্বারা বিভাজ্য সংখ্যা গণনা

N অঙ্কের এবং M অঙ্কের সেট দেওয়া থাকলে, ৫ দ্বারা বিভাজ্য কতগুলো সংখ্যা বানানো যায় তা বের করতে হবে।

নियम: সংখ্যাটি ০ বা ৫ দিয়ে শেষ হতে হবে।

উদাহরণ

ইনপুট: N = 2, M = 3, arr = {5, 6, 3} → আউটপুট: 2 (৩৫, ৬৫)

ইনপুট: N = 1, M = 7, arr = {2,3,4,5,6,7,8} → আউটপুট: 1 (৫)

অ্যালগরিদম

  • অ্যারেতে ০ এবং ৫ আছে কিনা চেক করুন।
  • দুটিই থাকলে ইউনিটস প্লেসে ২টি উপায়, অন্যথায় ১টি।
  • বাকি প্লেসগুলো পূরণের উপায় গুন করুন (পারমুটেশন)।
  • ০ বা ৫ না থাকলে -১ ফেরত দিন।

সি++ ইমপ্লিমেন্টেশন

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

int countDivisibleBy5(int n, int m, int arr[]) {
    bool hasZero = false, hasFive = false;
    if (m < n) return -1;
    for (int i = 0; i < m; i++) {
        if (arr[i] == 0) hasZero = true;
        if (arr[i] == 5) hasFive = true;
    }
    long long count = 0;
    if (hasZero && hasFive) {
        count = 2;
        for (int i = 0; i < n - 1; i++) count *= (m - 1 - i);
    } else if (hasZero || hasFive) {
        count = 1;
        for (int i = 0; i < n - 1; i++) count *= (m - 1 - i);
    } else return -1;
    return count;
}

int main() {
    int arr[] = {5, 6, 3};
    cout << countDivisibleBy5(2, 3, arr) << endl; // 2
    return 0;
}

আউটপুট

2
  1. দেওয়া তালিকা থেকে n-তম সংখ্যা যেটি অঙ্ক k ধারণ করে অথবা k দিয়ে বিভাজ্য C++-তে

  2. C++-এ N সংখ্যা দিয়ে N/2 জোড়া তৈরি করে বর্গের যোগফল ন্যূনীকরণ

  3. C++-এ সংখ্যা গুলোকে তাদের ডিজিট সমষ্টি অনুযায়ী সর্ট করা

  4. K ডিজিটের সর্বোচ্চ সংখ্যা যা X দিয়ে বিভাজ্য (C++)