این چالش بر اساس بازی کلاسیک “ماری” ساخته شده است.
فرض کنید صفحه بازی یک مربع n * n
است و مار، بازی را با طول 1 (یعنی فقط سر) که در گوشه سمت چپ بالا قرار دارد شروع می کند.
به عنوان مثال، اگر n = 7
باشد، بازی چیزی شبیه به این است، یک مربع 7 در 7:
در این نسخه از بازی، طول مار با هر بار خوردن غذا دو برابر می شود (مثلاً اگر طول آن 4 باشد، بعد از خوردن به 8 می رسد).
تابعی ایجاد کنید که عدد n (به عنوان ابعاد صفحه بازی) را در ورودی بگیرد و تعداد دفعاتی را که مار می تواند قبل از اینکه فضایش در صفحه بازی تمام شود، بخورد را برمی گرداند.
راهنمایی = اگر n برابر با 3 باشد، یک صفحه 3 در 3 شامل 9 خانه داریم. یکی از خانه ها از اول پر است. اگر مار غذا بخورد یکی اضافه می شود. الان طول مار برابر با 2 شده است و دو خانه از صفحه پر شده است. حال اگر مار غذا بخورد، طول آن دو برابر شده و چهار خانه از صفحه پر می شود. و بار آخر 8 صفحه از خانه پر خواهد شد. در این صورت اگر n = 3 باشد، 3 بار می تواند غذا بخورد.
نمونه ورودی و خروجی
Snakefill(3) ➞ 3
Snakefill(6) ➞ 5
EXPECT_EQ(snakefill(3), 3); EXPECT_EQ(snakefill(6), 5);
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات