मान लीजिए कि हमारे पास एक संख्या 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