ধরুন আমাদের একটি সংখ্যা n আছে। একটি সংখ্যা একটি বাইনারি দশমিক হয় যদি এটি একটি ধনাত্মক পূর্ণসংখ্যা হয় এবং এর দশমিক স্বরলিপিতে সমস্ত সংখ্যা হয় 0 বা 1৷ উদাহরণস্বরূপ, 1001 (এক হাজার এবং এক) একটি বাইনারি দশমিক, যেখানে 1021 নয়৷ n সংখ্যা থেকে, আমাদের কিছু (অগত্যা স্বতন্ত্র) বাইনারি দশমিকের যোগফল হিসাবে n উপস্থাপন করতে হবে। তারপর তার জন্য প্রয়োজনীয় বাইনারি দশমিকের ক্ষুদ্রতম সংখ্যা গণনা করুন।
সুতরাং, যদি ইনপুটটি n =121 এর মত হয়, তাহলে আউটপুট হবে 2, কারণ এটিকে 110 + 11 বা 111 + 10 হিসাবে উপস্থাপন করা যেতে পারে।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
ans := -1 while n > 0, do: ans := maximum of ans and (n mod 10) n := n / 10 return ans
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h>
using namespace std;
int solve(int n) {
int ans = -1;
while (n > 0) {
ans = max(ans, n % 10);
n /= 10;
}
return ans;
}
int main() {
int n = 121;
cout << solve(n) << endl;
} ইনপুট
121
আউটপুট
2