تعداد فروش | 0 دانشجو |
---|---|
پرسش و پاسخ ها | 0 کاربر |
تاریخ انتشار | 21 آذر 1402 |
سطح تمرین | سخت |
در این پست قصد داریم پاسخ سوال تبدیل مبنا کوئرا را بررسی و پیاده سازی نماییم.
مسئله: عدد در مبنای n وارد میشود.
این عدد را در قالب یک string و در مبنای b بنویسید.
ورودی
ورودی شامل یک خط است که در آن اعداد طبیعی b،a،n به ترتیب و با فاصله از هم قرار میگیرند.
خروجی
خروجی برنامه ی شما شامل یک خط است که در آن نمایش عدد n در مبنای b و در قالب یک string قرار میگیرد.
توجه کنید که در صورت لزوم به استفاده از حروف انگلیسی از حروف کوچک استفاده کنید.
انجام پروژه های برنامه نویسی
وفایی مقدم0936-328-6141
برای حل این مسئله اولین کاری که باید انجام دهیم تجزیه ورودی میباشد.
چون ورودی ها در یک خط وارد میشود ابتدا با دستور زیر آن را تجزیه میکنیم.
inp= input('').split(" ") a = int(inp[0]) f=int(inp[1]) t=int(inp[2])
همانطور که مشاهده میکنید با دستور split ورودی را بر اساس فضای خالی جداسازی میکنیم.
سپس هر کدام از موارد را در یک متغییر جداگانه ذخیره میکنیم.
حالا باید بررسی کنیم که مبنای مبدا 10 میباشد یا خیر.
اگر 10 میباشد که نیازی به بردن به مبنای 10 نیست اگر در مبنای 10 نیست باید ابتدا آن را به مبنای 10 ببریم.
پس کد زیر را برای بررسی و تبدیل مبنای مبدا به مبنای 10 مینویسم:
if (f != 10): while (a > 0): sum = sum + (pow(f,index) * (a % 10)) index+=1 a = a // 10 else: sum=a
همانطور که مشاهده میکنید اگر دقت کنید ما با شرط بررسی میکنیم که آیا مبنای مبدا 10 میباشد یا خیر.
اگر 10 بود نیازی به تبدیل نیست اما اگر 10 نبود با آن را به مبنای 10 ببریم تا بتوانیم در نهایت به مبنای مقصد ببریم.
پیشنهاد مرتبط: خواندن پی دی اف فارسی در پایتون
برای تبدیل مبنا مبدا به مقصد ابتدا بررسی میکنیم که مبنای مقصد 10 میباشد یا نه.
اگر مبنای مبدا مبنای 10 نبود پس ابتدا آن را به مبنای 10 میبریم.
حالا که مبنای مبدا ما در مبنای 10 است با کمک تقسیم متوالی آن را به مبنای دیگر میبریم.
کد تبدیل مبنای 10 به مبنایی دیگر به صورت زیر میباشد:
پس از اینکه تقسیم متوالی را انجام دادیم اطلاعات را در یک لیست ذخیره میکنیم.
حالا نوبت به نمایش میباشد همانطور که میدانید نمایش عدد در مبنای 16 وقتی که به عدد 10 میرسیم متفاوت است.
یعنی اگر از 9 بالاتر رود اعداد به صورت ABCDEF چاپ میشود.
پس کد زیر را طوری مینویسیم که اگر خروجی در مبنای 16 نبود به طور طبیعی و اگر در مبنای 16 بود اعداد مربوطه چاپ شود.
سورس کد به صورت زیر میباشد:
تمرین مرتبط: چاپ بزرگترین رقم عدد با پایتون
حالا که اکثر بخش های سورس کد پاسخ سوال تبدیل مبنا کوئرا را متوجه میشویم.
سورس کد کامل پس از ثبت نام در وب سایت در دسترس شما میباشد.
با کمک حل تمرینات کوئرا میتوانید تسلط بسیار زیادی در حل مسئله پیدا کنید.
ما در این مقاله سعی کردیم به صورت بخش بخش حل مسئله تبدیل مبنا را توضیح دهیم.
از بخش تمرین پایتون میتوانید مجموعه تمرین های رایگان و با جواب پایتون را مشاهده نمایید.
پرسش و پاسخ ها
هنوز بررسیای ثبت نشده است.