حل تمرین اعداد هگزا دسیمال کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات مبانی برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین اعداد هگزا دسیمال کوئرا با پایتون
در یک صبح زیبای تابستانی اتفاق وحشتناکی در پردازنده مرکزی افتاد، یک ویروس آب زیرکاه به نام مگابایت به طریقی به حافظه خواهرش به نام هگزادسیمال (که کمتر از او آب زیرکاه نبود) دسترسی پیدا کرد. او برای به دست آوردن کنترل کامل بر خواهرش n عدد مختلف طبیعی از 1 تا n را load کرد. ولی نقشهاش با شکست مواجه شد. علتش ساده بود: هگزادسیمال هر اطلاعاتی را درک نمیکرد، بجز اعدادی که در مبنای ۲ نوشته شدهاند. یعنی اگر عددی در مبنای 10 شامل رقمی به جز 0 و 1 شود، در حافظه قرار نمیگیرد. اکنون مگابایت میخواهد بداند که چه تعداد از عددها به طور موفقیت آمیز load شدهاند.
ورودی
در یک خط عدد n به شما داده میشود.
![]()
خروجی
در یک خط پاسخ مسئله را چاپ کنید.
مثال
ورودی نمونه 1
10
خروجی نمونه 1
2
کد پایتون سوال تمرین اعداد هگزا دسیمال
def countBinaries(N): powersOfTwo = [0] * 11 powersOfTwo[0] = 1 for i in range(1, 11): powersOfTwo[i] = powersOfTwo[i - 1] * 2 ctr = 1 ans = 0 while (N > 0): if (N % 10 == 1): ans += powersOfTwo[ctr - 1] elif (N % 10 > 1): ans = powersOfTwo[ctr] - 1 ctr += 1 N = N // 10 return ans N = int(input()) print(countBinaries(N))
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.



















جالبه که با یه روش منطقی میشه تعداد اعداد مناسب رو محاسبه کرد
سپاس از نظرتون.
تجربه خودم میگه که نگاه کردن به اعداد به صورت مبنای دودویی خیلی کمک میکنه
سپاس از نظرتون.
راستش منم اولش سردرگم شدم ولی بعد از کمی تمرکز همه چی جمع شد
خوشحالیم این نوشته به شما کرده است. موفق باشید.
راحت فهمیدم
خوشحالیم این نوشته به شما کمک کرده است. موفق باشید.
با اینکه به نظر پیچیده میومد ولی وقتی مثالها رو بررسی کردم
سپاس از نظرتون.