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

পাইথন প্রোগ্রাম: সংখ্যায় থাকা সব ০ কে ৫ দিয়ে রিপ্লেস করুন (লিডিং জিরো বাদে)

সমস্যা বিবরণ

একটি পূর্ণসংখ্যা N দেওয়া আছে। এই সংখ্যার মধ্যে যতগুলো ০ আছে, সবকে ৫ দিয়ে রিপ্লেস করতে হবে। তবে সংখ্যার শুরুতে থাকা লিডিং জিরো (Leading zeros) রিপ্লেস করা যাবে না (সেগুলো bỏ যায়)।

উদাহরণ

  • ইনপুট-১: N = 1007 → আউটপুট: 1557 (দুইটি ০ → ৫)
  • ইনপুট-২: N = 00105 → আউটপুট: 155 (লিডিং ০০ বাদ, মাঝপথের ০ → ৫)

সমাধানের পদ্ধতি (রিকার্সিভ / গাণিতিক)

  1. সংখ্যার শেষ ডিজিট বের করুন (number % 10)।
  2. যদি ০ হয়, তবে ৫ যোগ করুন (প্লেস ভ্যালু অনুযায়ী)।
  3. সংখ্যাকে ১০ দিয়ে ভাগ করুন (শেষ ডিজিট সরাতে) এবং প্লেস ভ্যালু ১০ গুন করুন।
  4. রিকার্সিভ বা লুপ দিয়ে পুরো সংখ্যা প্রসেস করুন।

পূর্ণ কোড উদাহরণ

def convertToFive(number):
    # সংখ্যা ০ হলে স্পেশাল হ্যান্ডলিং
    if number == 0:
        return 5
    
    result = 0
    placeValue = 1
    
    while number > 0:
        digit = number % 10
        if digit == 0:
            result += 5 * placeValue
        else:
            result += digit * placeValue
        number //= 10
        placeValue *= 10
    
    return result

# টেস্ট
print(convertToFive(14006))  # আউটপুট: 14556
print(convertToFive(1007))   # আউটপুট: 1557
print(convertToFive(105))    # আউটপুট: 155 (00105 ইনপুট দিলে পাইথন ১০৫ হিসেবে নিবে)

আউটপুট

14556
1557
155

বিকল্প পদ্ধতি: স্ট্রিং ম্যানিপুলেশন (সহজ)

def replace_zeros_str(n):
    s = str(n)
    # লিডিং জিরো বাদ দিয়ে বাকি ০কে ৫ করুন
    return int(s.replace('0', '5'))

print(replace_zeros_str(14006))  # 14556
print(replace_zeros_str(1007))   # 1557
print(replace_zeros_str(105))    # 155

দ্রষ্টব্য: পাইথনে ইন্টিজার লিটেরাল হিসেবে 00105 লিখলে সিন্ট্যাক্স এরর হবে (অক্টাল ধরে নেয়)। স্ট্রিং ইনপুট নিলে লিডিং জিরো হ্যান্ডেল করা সহজ।

  1. পাইথন প্রোগ্রাম: দেওয়া সংখ্যা N-এ মোট কতটি ডিজিট (Digit) আছে তা গণনা করুন

  2. পাইথনে দেয়া সংখ্যার বাইনারি রিপ্রেজেন্টেশনে ১ বিটের সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনে দিয়ে गये সংখ্যার সব ডিজিটের যোগফল বের করার প্রোগ্রাম

  4. দেওয়া রেঞ্জে অদ্দ ফ্যাক্টরের সংখ্যা বের করার পাইথন প্রোগ্রাম