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

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


<প>দুটি ধনাত্মক পূর্ণসংখ্যা n এবং k দেওয়া আছে, এবং আমাদের n-তম সেই সংখ্যা বের করতে হবে যেটি অঙ্ক k ধারণ করে অথবা k দিয়ে বিভাজ্য। k হবে [2 থেকে 9] পরিসরে। তাই যদি n এবং k যথাক্রমে 15 এবং 3 হয়, তবে আউটপুট হবে 33। কারণ সংখ্যাগুলো [3, 6, 9, 12, 13, 15, 18, 21, 23, 24, 27, 30, 31, 33] এগুলো যেসব সংখ্যা যাতে অঙ্ক k = 3 থাকে অথবা k দিয়ে বিভাজ্য, এবং এই n-তম সংখ্যা হল 33। তাই আউটপুট 33।

প্রতিটি সংখ্যা চেক করুন যাতে k থাকে এবং k-এর গুণিতক, এবং কাউন্ট করুন যতক্ষণ না n-তম উপাদানটি পাওয়া যায়।

উদাহরণ

#include <iostream>
using namespace std;

bool hasDigit(int n, int k) {
    while (n > 0) {
        int rem = n % 10;
        if (rem == k)
            return true;
        n = n / 10;
    }
    return false;
}

int countNumbers(int n, int k) {
    for (int i = k + 1, count = 1; count < n; i++) {
        if (hasDigit(i, k) || (i % k == 0))
            count++;
        if (count == n)
            return i;
    }
    return -1;
}

int main() {
    int n = 10, k = 2;
    cout << "Last number is " << countNumbers(n, k) << " before that the number contains " << k << " and multiple of " << k;
}

আউটপুট

Last number is 20 before that the number contains 2 and multiple of 2

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

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

  3. C++ ব্যবহার করে একটি সংখ্যায় একটি ডিজিটের ফ্রিকোয়েন্সি বের করা

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