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