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

X ডিজিটাল রুট वाले Nতম ধনাত্মক সংখ্যা খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের দুটি পূর্ণসংখ্যা মান N এবং X দেওয়া আছে। আমাদের কাজ হল X ডিজিটাল রুট वाले Nতম ধনাত্মক সংখ্যা বের করার প্রোগ্রাম লিখা।

ডিজিটাল রুট (X) হল একটি একক অঙ্কের ধনাত্মক সংখ্যা যা N-এর অঙ্কগুলো যোগ করে রিকারসিভভাবে বের করা হয়, যতক্ষণ না যোগফল একক অঙ্কের হয়।

উদাহরণ

ইনপুট

N = 5, X = 4

আউটপুট

40

সমাধানের পদ্ধতি

এই সমস্যা সমাধানের একটি সহজ পদ্ধতি হল X ডিজিটাল রুট বাড়া সংখ্যা গণনা করা। এর জন্য, আমরা ১ থেকে শুরু করব এবং চেক করব যে বর্তমান সংখ্যার ডিজিটাল রুট X-এর সমান কিনা এবং সংখ্যা কাউন্ট করব এবং Nতম এমন সংখ্যা রিটার্ন করব।

প্রোগ্রাম উদাহরণ (সহজ পদ্ধতি)

#include <iostream>
using namespace std;

int calcDigitalRoot(int num) {
    int digitSum = 1000, number = num;
    while (digitSum >= 10) {
        digitSum = 0;
        while (number > 0) {
            digitSum += number % 10;
            number /= 10;
        }
        number = digitSum;
    }
    return digitSum;
}

int calcNthDigitalRoot(int X, int N) {
    int countDigitalRootVals = 0;
    for (int i = 1; countDigitalRootVals < N; ++i) {
        int digitalRoot = calcDigitalRoot(i);
        if (digitalRoot == X) {
            ++countDigitalRootVals;
        }
        if (countDigitalRootVals == N)
            return i;
    }
    return -1;
}

int main() {
    int X = 4, N = 5;
    cout << N << "th positive number whose digital root is " << X << " is " << calcNthDigitalRoot(X, N);
    return 0;
}

আউটপুট

5th positive number whose digital root is 4 is 40

দক্ষ পদ্ধতি

এই সমস্যা সমাধানের একটি দক্ষ পদ্ধতি হল সরাসরি সূত্র ব্যবহার করে X ডিজিটাল রুট বাড়া Nতম সংখ্যা বের করা, যা হলো:

Nতম সংখ্যা = (N - 1)×9 + X

প্রোগ্রাম উদাহরণ (দক্ষ পদ্ধতি)

#include <iostream>
using namespace std;

int calcNthDigitalRoot(int X, int N) {
    int nthNumber = ((N - 1) * 9) + X;
    return nthNumber;
}

int main() {
    int X = 4, N = 12;
    cout << N << "th positive number whose digital root is " << X << " is " << calcNthDigitalRoot(X, N);
    return 0;
}

আউটপুট

12th positive number whose digital root is 4 is 103
  1. ম্যাট্রিক্সে ক্যাবিটির সংখ্যা বের করা C++-তে

  2. C++-এ সর্টেড অ্যারেতে সবচেয়ে কাছাকাছি সংখ্যা (Closest Number) খুঁজে বের করা

  3. সি++ প্রোগ্রাম: সংখ্যার ঘনমূল (Cubic Root) নির্ণয়

  4. C++-এ 유리 সংখ্যার LCM খুঁজে বের করা