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

C++-এ ১ থেকে n পর্যন্ত ডিজিট ১-এর সংখ্যা গণনা (Number of Digit One)

নাম্বার অফ ডিজিট ワン সমস্যা

১ থেকে n পর্যন্ত সব পূর্ণসংখ্যার দশমিক প্রতিনিধিত্বে কতবার ডিজিট 1 আসেছে তা গণনা করতে হবে।

উদাহরণ: n=15 → সংখ্যাগুলো: ১, ১০, ১১, ১২, ১৩, ১৪, ১৫ → মোট ৮টি '১'

সমাধানের পদ্ধতি (গাণিতিক / ডিজিট DP স্টাইল)

প্রতিটি ডিজিট পজিশন (ইকাই, দশক, শতক...) আলাদা আলাদা বিশ্লেষণ করুন।

  • i = 1, 10, 100, ... (প্রতিটি ডিজিট পজিশন)
  • a = n / i (উচ্চতর ডিজিট), b = n % i (নিম্নতর ডিজিট), x = a % 10 (বর্তমান ডিজিট)
  • যদি x == 0: এই পজিশনে '১' আসবে (a/10) * i বার
  • যদি x == 1: এই পজিশনে '১' আসবে (a/10) * i + (b+1) বার
  • যদি 1: এই পজিশনে '১' আসবে (a/10 + 1) * i বার

C++ কোড উদাহরণ

15

আউটপুট

8
  1. Frugal সংখ্যা চেক করা (C++)

  2. C++ দিয়ে পেন্টাটপ (Pentatope) সংখ্যা বের করা

  3. C++-এ সংখ্যা এনকোড করা

  4. C++-এ একটি ইন্টিজারর ওন'স কমপ্লিমেন্ট খুঁজে বের করা