حل تمرین بازی تفاضل کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات برنامه نویسی وبسایت کوئرا میپردازیم.
پیشنهاد نویسنده: پروژه سایت خبری به صورت اتوماتیک با Django
حل تمرین بازی تفاضل کوئرا با پایتون
فرهاد و سلیب در حال بازی تفاضل هستند، بازی به این گونه اجرا میشود که فرهاد به سلیب یک عدد دو رقمی میدهد و سلیب باید رقم بزرگتر این عدد را از رقم کوچکتر کم کند و نتیجه را بگوید.
از آنجایی که سلیب از دبستان کلاسهایش را میپیچاند، تفریق را بهدرستی یاد نگرفته است. اما برنامهنویس متبحری است و برنامهای مینویسد که این کار را برایش انجام دهد.
حال از شما میخواهیم که همانند سلیب این برنامه را پیادهسازی کنید تا شما هم به دانش “عمل تفریق” نیازی نداشته باشید.
شما در این سوال نیاز به پیادهسازی تابعی به نام game دارید که یک عدد را به صورت عدد ورودی میگیرد و تفاضل رقم بزرگتر ورودی از رقم کوچکتر را برمیگرداند.
def game(number): pass
نمونه 1
>> game(17) > 6
7 بزرگتر از 1 است؛ پس در خروجی باید 1-7 یعنی 6 چاپ شود.
نمونه 2
>> game(66) > 0
وقتی دو رقم برابر با هم هستند، تفاضلشان برابر با صفر است.
نمونه 3
>> game(81) > 7
8 بزرگتر از 1 است؛ پس در خروجی باید 1-8 یعنی 7 چاپ شود.
کد پایتون سوال تمرین بازی تفاضل
def game(number):
yekan = number % 10
dahgan = number // 10
return abs(yekan - dahgan)
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.



















اگر ورودی های غیرمنتظره به برنامه داده بشه، لازمه جداگانه مدیریت بشن؟
اگر در صورت سوال محدودیت ورودی ها مشخص شده باشد، معمولا می توانید همان فرض ها را در نظر بگیرید. اما در پروژه های واقعی اعتبارسنجی ورودی اهمیت زیادی دارد.
امکان داره همین سوال رو بدون استفاده از حلقه هم حل کرد؟
بستگی به صورت دقیق مسئله دارد، اما در بسیاری از تمرین های این سبک، استفاده از حلقه ساده ترین و خواناترین راه حل است.
اگر تازه پایتون یاد گرفته باشیم، این تمرین سطح مناسبی برای شروع داره؟
بله، اگر با مفاهیمی مثل ورودی، خروجی، شرط ها و حلقه ها آشنا باشید، این تمرین می تواند گزینه مناسبی برای تمرین و تقویت مهارت حل مسئله باشد.
برای این تمرین فقط یک راه حل وجود داره یا میشه با روش های مختلف هم به جواب رسید؟
معمولا برای مسائل برنامه نویسی چندین راه حل وجود دارد. مهم این است که خروجی صحیح تولید شود و الگوریتم از نظر زمان و حافظه با محدودیت های مسئله سازگار باشد.
اگر مسئله رو با حلقه for حل کنیم ولی از نظر زمانی کندتر باشه، توی کوئرا ممکنه نمره کم بشه؟
بله، اگر محدودیت زمانی مسئله رعایت نشود ممکن است پاسخ با خطای Time Limit Exceeded مواجه شود. بهتر است علاوه بر درست بودن خروجی، پیچیدگی زمانی راه حل را هم در نظر بگیرید.