ধরুন আমাদের একটি মান 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
- 1 থেকে n রেঞ্জের জন্য, করুন
- f :=ফাঁকা স্ট্রিং
- "doXb"-এ প্রতিটি অক্ষর c-এর জন্য, do
- যদি f খালি না হয়, তাহলে
- f :=f একটি ফাঁকা স্থান সংযুক্ত করুন
- f :=f + ডান সারিবদ্ধ ফরম্যাটিং স্ট্রিং l কে স্ট্রিং হিসাবে রূপান্তর করে তারপর c concatenate করুন
- যদি f খালি না হয়, তাহলে
- ফরম্যাট করা স্ট্রিং f এ চারবার পাস করুন এবং লাইনটি প্রিন্ট করুন
উদাহরণ
আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি
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