ধরুন আমাদের একটি সংখ্যা 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