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

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

সমস্যা বিবরণ

একটি পূর্ণসংখ্যা N দেওয়া আছে। এই সংখ্যার মোট কতটি ডিজিট (অঙ্ক) আছে তা বের করা। লিডিং জিরো (Leading zeros) গড়ে নেই।

উদাহরণ

  • ইনপুট-১: N = 891452 → আউটপুট: ৬
  • ইনপুট-২: N = 0074515 → আউটপুট: ৫ (লিডিং ০০ বাদে ৭৪৫১৫ → ৫ ডিজিট)

সমাধানের পদ্ধতি (লুপ দিয়ে)

  1. কাউন্টার ans = 0 ইনিশিয়ালাইজ করুন।
  2. যবতক n > 0:
    • ans += 1
    • n = n // 10 (শেষ ডিজিট সরান)
  3. ans রিটার্ন করুন।

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

def countDigits(n):
    # স্ট্রিং ইনপুট হলে ইন্টেজার-এ কনভার্ট
    if isinstance(n, str):
        n = int(n)  # লিডিং জিরো অটোমেটিক্যালি বাদ যাবে
    ans = 0
    while n:
        ans += 1
        n = n // 10
    return ans

# টেস্ট
print("ডিজিট কাউন্ট:", countDigits("45758"))  # ৫
print("ডিজিট কাউন্ট:", countDigits(891452))   # ৬
print("ডিজিট কাউন্ট:", countDigits("0074515")) # ৫

আউটপুট

ডিজিট কাউন্ট: 5
ডিজিট কাউন্ট: 6
ডিজিট কাউন্ট: 5

বিকল্প পদ্ধতি (স্ট্রিং দিয়ে - সহজ)

def countDigitsStr(n):
    return len(str(n).lstrip('0')) if str(n).lstrip('0') else 1  # ০ এর কেস

print(countDigitsStr("0074515"))  # ৫
print(countDigitsStr(0))          # ১

দ্রষ্টব্য: ইন্টিজার হিসেবে ইনপুট নিলে লিডিং জিরো অটোমেটিক্যালি বাদ যায়। স্ট্রিং ইনপুটে lstrip('0') বা int() কনভারশন ব্যবহার করুন।

  1. পাইথনে ম্যাট্রিক্সে ঘিরা দ্বীপের সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম সেট ব্যবহার করে স্ট্রিংয়ে ভাওয়েল কাউন্ট করা

  3. পাইথন প্রোগ্রাম: সেট ব্যবহার করে স্ট্রিং-এ স্বরবর্ণ গণনা (Duplicate)

  4. পাইথনে একটি সংখ্যার টোটাল বিট গণনা করার প্রোগ্রাম