मान लीजिए हमारे पास एक संख्या है। संख्या 0 से 231 - 1 के बीच कुछ भी हो सकती है। हमें संख्या को शब्दों में बदलना है। इसलिए यदि संख्या 512 जैसी है, तो परिणाम पांच सौ बारह होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −
less_than_20 जैसी कुछ सूचियाँ परिभाषित करें, यह एक से उन्नीस तक के सभी शब्दों को रखेगा
tens जैसी एक और सरणी दस, बीस, तीस और इसी तरह नब्बे तक रखने के लिए
हजार, लाख और अरब रखने के लिए thousands के लिए एक और सरणी
helper() नामक एक फंक्शन परिभाषित करें, यह n लेगा
यदि n 0 है, तो खाली स्ट्रिंग लौटाएं
अन्यथा जब n < 20, तो less_than_20[n] + खाली स्थान लौटाएं
अन्यथा जब n < 100, तो tens[n/10] + खाली स्थान + helper(n mod 10) लौटाएं
अन्यथा less_than_20[n/100] + "Hundred" + helper(n mod 100) लौटाएं
मुख्य विधि से, निम्नलिखित करें
यदि num 0 है, तो "Zero" लौटाएं
ans := खाली स्ट्रिंग, i := 0
जब तक num > 0
यदि num mod 1000 0 नहीं है, तो
ans := helper(num mod 1000) + thousands[i] + खाली स्थान + ans
num := num / 1000
ans लौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें −
class Solution(object): less_than_20 = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"] tens = ["","Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"] thousands = ["", "Thousand", "Million", "Billion"] def numberToWords(self, num): if num == 0: return "Zero" ans = "" i = 0 while num > 0: if num % 1000 != 0: ans = self.helper(num % 1000) + Solution.thousands[i] + " " + ans i += 1 num //= 1000 return ans.strip() def helper(self, n): if n == 0: return "" elif n < 20: return Solution.less_than_20[n] + " " elif n < 100: return Solution.tens[n//10] + " " + self.helper(n % 10) else: return Solution.less_than_20[n // 100] + " Hundred " + self.helper(n % 100) ob = Solution() print(ob.numberToWords(512)) print(ob.numberToWords(7835271))
इनपुट
512 7835271
आउटपुट
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One