بکندباز

این چالش بر اساس بازی کلاسیک “ماری” ساخته شده است.

فرض کنید صفحه بازی یک مربع 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);

پاسخ های کاربران به این تمرین

lammaso
امتیاز:‌ 375
تصحیح اتوماتیک 0 0
‎C++‎
2 مرداد 1402

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

mantix
امتیاز:‌ 375
تصحیح اتوماتیک 0 0
‎C++‎
4 ارديبهشت 1402

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*