কম্পিউটার টিউটোরিয়াল

পাইথনে ইন্টিজার টু ইংলিশ ওয়ার্ডস (Integer to English Words)


সমস্যা বিবরণ

০ থেকে ২³¹-১ পর্যন্ত যেকোনো সংখ্যাকে ইংরেজি শব্দে রূপান্তর করুন।

উদাহরণ

512 → "Five Hundred Twelve"

7835271 → "Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One"

এলগরিদম

  1. ৩টি লিস্ট: less_than_20 (১-১৯), tens (২০,৩০...৯০), thousands (Thousand, Million, Billion)।
  2. helper(n) ফাংশন:
    • n=0 → ""
    • n<20 → less_than_20[n]
    • n<100 → tens[n//10] + " " + helper(n%10)
    • অন্যথায় → less_than_20[n//100] + " Hundred " + helper(n%100)
  3. মূল ফাংশনে ১০০০-এর গোষ্ঠী করে প্রক্রিয়া করুন।

পাইথন বাস্তবায়ন

class Solution:
    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) + self.thousands[i] + " " + ans
            num //= 1000
            i += 1
        return ans.strip()
    
    def helper(self, n):
        if n == 0:
            return ""
        elif n < 20:
            return self.less_than_20[n] + " "
        elif n < 100:
            return self.tens[n//10] + " " + self.helper(n % 10)
        else:
            return self.less_than_20[n//100] + " Hundred " + self.helper(n % 100)

ob = Solution()
print(ob.numberToWords(512))       # Five Hundred Twelve
print(ob.numberToWords(7835271))   # Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One

ইনপুট / আউটপুট

ইনপুট: 512, 7835271
আউটপুট: Five Hundred Twelve / Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One
  1. পাইথনে Tkinter প্রোগ্রামিং

  2. পাইথনে bin() ফাংশন

  3. পাইথনে সকেট প্রোগ্রামিং (Socket Programming) বেসিক

  4. পাইথনে Turtle গ্রাফিক্স: আঙ্কন ও অ্যানিমেশন