بکندباز

این چالش، سطح پیشرفته تر چالش دنباله کوچک-بزرگ است. یک دنباله عددی با ایده مشابه دنباله بزرگ-کوچک قبلی داریم، اما این‌بار با یک قاعده اضافه:

  1. در ابتدا، در موقعیت 1 و 2، مقادیر را همان 5 و 100 قرار دارند.
  2. اگر n فرد بود، (مثل 3، 5، 7 و …)، ابتدا مانند قبل یک واحد به آخرین مقدارِ فردِ دنباله اضافه کنید. اگر n یک عدد اول هم بود، مقدار حاصل را سه برابر کنید.
  3. به همین ترتیب در دنباله پیش بروید و تابعی بنویسید که عدد موجود در موقعیت n را بازگرداند.
5 100 18 200 57 400 174 800 175 1600 ...

نمونه ورودی و خروجی

LittleBigAdvanced(3) ➞ 18

LittleBigAdvanced(4) ➞ 200

LittleBigAdvanced(5) ➞ 57
EXPECT_EQ(LittleBigAdvanced(3), 18);
EXPECT_EQ(LittleBigAdvanced(4), 200);
EXPECT_EQ(LittleBigAdvanced(5), 57);
EXPECT_EQ(LittleBigAdvanced(8), 800);
EXPECT_EQ(LittleBigAdvanced(9), 175);

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

    MarsBoy پاسخ

    سلام...
    little_big_advanced(5) ➞ 57
    این نباید بشه 21؟
    چون عنصر پنجم میشه 7 (5,100,6,200,7 ) ( در حالت قبلی ) ...حالا چون 5 عددی است فرد باید عدد 7 رو سه برابر کنیم که میشه 21 ...چطوری شده 57؟

    MarsBoy پاسخ

    ببخشید چون n عددی است اول باید 7 رو سه برابر کنیم

    MarsBoy پاسخ

    متوجه شدم ...باید به عدد قبلی بدست آمده یک واحد اضافه شود و اون سه برابر شود ..در مثال ما 18 +1 است....

تمرینات مرتبط