मान लीजिए हमारे पास एक मान n है। हमें पहले n संख्याओं (1 से n) के दशमलव, अष्टाधारी, हेक्साडेसिमल और बाइनरी समतुल्य को चार अलग-अलग कॉलम में प्रिंट करना है। जैसा कि हम जानते हैं, हम संख्याओं को d, o, X और b प्रीफिक्स वर्णों के साथ व्यक्त कर सकते हैं जो क्रमशः दशमलव, अष्टाधारी, हेक्साडेसिमल और बाइनरी के लिए हैं।
उदाहरण के लिए, यदि इनपुट n = 10 है, तो आउटपुट होगा:
1 1 1 1 2 2 2 10 3 3 3 11 4 4 4 100 5 5 5 101 6 6 6 110 7 7 7 111 8 10 8 1000 9 11 9 1001 10 12 A 1010
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- l := (n के बाइनरी समतुल्य की लंबाई) - 2
- i के लिए 1 से n तक की रेंज में, करें
- f := खाली स्ट्रिंग
- "doXb" में प्रत्येक वर्ण c के लिए, करें
- यदि f खाली नहीं है, तो
- f := f + एक खाली स्थान
- f := f + l को स्ट्रिंग में बदलकर दाएं संरेखित फॉर्मेटिंग स्ट्रिंग फिर c जोड़ें
- यदि f खाली नहीं है, तो
- फॉर्मेटेड स्ट्रिंग f को i को चार बार पास करें और पंक्ति प्रिंट करें
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(n):
l = len(bin(n)) - 2
for i in range(1, n + 1):
f = ""
for c in "doXb":
if f:
f += " "
f += "{:>" + str(l) + c + "}"
print(f.format(i, i, i, i))
n = 10
solve(n)इनपुट
10
आउटपुट
1 1 1 1 2 2 2 10 3 3 3 11 4 4 4 100 5 5 5 101 6 6 6 110 7 7 7 111 8 10 8 1000 9 11 9 1001 10 12 A 1010