এই সমস্যায়, আমাদের দুটি পূর্ণসংখ্যার মান দেওয়া হয়েছে N এবং X। আমাদের কাজ হল Nth ধনাত্মক সংখ্যা খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা যার ডিজিটাল রুট হল X।
ডিজিটাল রুট (X) একটি একক সংখ্যার ধনাত্মক সংখ্যা যা N এর সংখ্যাগুলিকে বারবার যোগ করে অঙ্কগুলি যোগ করে পাওয়া যায়, যতক্ষণ না যোগফল একক অঙ্কে পরিণত হয়৷
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
N = 5, X = 4
আউটপুট
40
সমাধান পদ্ধতি
সমস্যা সমাধানের একটি সহজ উপায় হল একটি ডিজিটাল রুট দিয়ে সংখ্যা গণনা করা হল X। এর জন্য, আমরা 1 থেকে শুরু করব এবং তারপরে বর্তমান সংখ্যার ডিজিটাল রুট X এর সমান কিনা তা পরীক্ষা করব এবং সংখ্যাগুলি গণনা করব এবং Nth নম্বরটি ফেরত দেব।
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
উদাহরণ
#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
দক্ষ পদ্ধতি
সমস্যা সমাধানের জন্য একটি দক্ষ পন্থা হল N th খুঁজে বের করা সরাসরি সূত্র ব্যবহার করে X এর সমান ডিজিটাল রুট সহ সংখ্যা যা হল,
Nth number = (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