بکندباز

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

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

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

little_big_advanced(3) ➞ 18

little_big_advanced(4) ➞ 200

little_big_advanced(5) ➞ 57
self.assertEqual(little_big_advanced(3), 18)
self.assertEqual(little_big_advanced(4), 200)
self.assertEqual(little_big_advanced(5), 57)
self.assertEqual(little_big_advanced(8), 800)
self.assertEqual(little_big_advanced(9), 175)

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

user-ixnb
امتیاز:‌ 1206
تصحیح اتوماتیک 0 0
‎پایتون‎
15 دي 1403

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

MarsBoy
امتیاز:‌ 1206
تصحیح اتوماتیک 0 0
‎پایتون‎
15 دي 1403

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

نظرات

*
*

    MarsBoy پاسخ

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

    MarsBoy پاسخ

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

    MarsBoy پاسخ

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

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