این چالش، سطح پیشرفته تر چالش دنباله کوچک-بزرگ است. یک دنباله عددی با ایده مشابه دنباله بزرگ-کوچک قبلی داریم، اما اینبار با یک قاعده اضافه:
- در ابتدا، در موقعیت 1 و 2، مقادیر را همان 5 و 100 قرار دارند.
- اگر n فرد بود، (مثل 3، 5، 7 و …)، ابتدا مانند قبل یک واحد به آخرین مقدارِ فردِ دنباله اضافه کنید. اگر n یک عدد اول هم بود، مقدار حاصل را سه برابر کنید.
- به همین ترتیب در دنباله پیش بروید و تابعی بنویسید که عدد موجود در موقعیت 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)
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
سلام...
little_big_advanced(5) ➞ 57
این نباید بشه 21؟
چون عنصر پنجم میشه 7 (5,100,6,200,7 ) ( در حالت قبلی ) ...حالا چون 5 عددی است فرد باید عدد 7 رو سه برابر کنیم که میشه 21 ...چطوری شده 57؟
ببخشید چون n عددی است اول باید 7 رو سه برابر کنیم
متوجه شدم ...باید به عدد قبلی بدست آمده یک واحد اضافه شود و اون سه برابر شود ..در مثال ما 18 +1 است....