راه
۶ کیو· متوسطمتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

محاسبه‌گر

محمد لیستی از اعداد به نام ls به طول n و یک عدد صحیح مثبت m در اختیار دارد. او می‌خواهد ارزش این لیست را طبق مراحل زیر محاسبه کند و برای این کار، به کمک شما نیاز دارد.


مرحله ۱: گروه‌بندی

لیست ls را به گروه‌های متوالی با اندازه‌ی m تقسیم کنید. به این صورت که m عنصر اول لیست در گروه اول، m عنصر بعدی در گروه دوم و الی آخر قرار می‌گیرند.

گروه آخر ممکن است کمتر از m عضو داشته باشد اگر تعداد کل عناصر لیست بر m بخش‌پذیر نباشد.

مرحله ۲: محاسبه‌ی جمع هر گروه

یک لیست جدید ایجاد کنید که هر عنصر آن، حاصل جمع اعداد موجود در گروه متناظر از مرحله‌ی قبل باشد.

مرحله ۳: محاسبه‌ی ارزش شطرنجی

ارزش نهایی لیست با محاسبه‌ی جمع و تفریق متناوب (شطرنجی) عناصر لیست جدید به دست می‌آید. به این صورت که عنصر اول لیست جدید، منهای عنصر دوم، به‌علاوه‌ی عنصر سوم، منهای عنصر چهارم و ... تا انتهای لیست جدید محاسبه می‌شود.


تابع calculator

تابع calculator(n, m, ls) را پیاده‌سازی کنید که n (تعداد اعضای لیست)، m (اندازه‌ی هر گروه) و ls (لیست اعداد ورودی) را به‌عنوان آرگومان دریافت کند و ارزش نهایی محاسبه‌شده طبق مراحل بالا را برگرداند.


🎯 نمونه

نمونه‌ی ۱

text
>>> calculator(8, 3, [1, 2, 3, 4, 5, 6, 7, 8])
6

گروه‌بندی: گروه ۱: [1, 2, 3] گروه ۲: [4, 5, 6] گروه ۳: [7, 8] جمع هر گروه: [6, 15, 15] ارزش شطرنجی: 6 − 15 + 15 = 6

نمونه‌ی ۲

text
>>> calculator(8, 1, [1, 2, 3, 4, 5, 6, 7, 8])
-4

گروه‌بندی: گروه‌ها تک‌عضوی می‌شوند: [1], [2], [3], [4], [5], [6], [7], [8] جمع هر گروه: [1, 2, 3, 4, 5, 6, 7, 8] (همان لیست اولیه) ارزش شطرنجی: 1 − 2 + 3 − 4 + 5 − 6 + 7 − 8 = -4


💡 راهنمایی

برای حل این تمرین، مراحل زیر را دنبال کنید:

  1. یک لیست خالی برای ذخیره‌ی جمع گروه‌ها ایجاد کنید.
  2. با استفاده از یک حلقه، لیست ورودی را به گروه‌های mتایی تقسیم کنید و جمع هر گروه را محاسبه کنید.
  3. با استفاده از یک حلقه، جمع‌های گروه‌ها را به‌صورت شطرنجی با هم جمع/تفریق کنید.
python
def calculator(n, m, ls):
    group_sums = []
    for i in range(0, n, m):
        group = ls[i:i + m]
        group_sums.append(sum(group))

    result = 0
    for i, value in enumerate(group_sums):
        if i % 2 == 0:
            result += value
        else:
            result -= value

    return result

می‌توانید از List Comprehension برای گروه‌بندی استفاده کنید:

python
group_sums = [sum(ls[i:i + m]) for i in range(0, n, m)]

می‌توانید از تابع sum() با یک عبارت شرطی استفاده کنید:

python
result = sum(value if i % 2 == 0 else -value for i, value in enumerate(group_sums))
  • در این تمرین، نیازی به دریافت ورودی از کاربر یا چاپ خروجی در کنسول ندارید.
  • شما فقط باید تابع calculator را پیاده‌سازی کنید.
  • ورودی تابع از طریق آرگومان‌های آن دریافت می‌شود و خروجی تابع باید از طریق دستور return برگردانده شود.
  • نیازی به فراخوانی تابع در کد ارسالی نیست. سیستم به‌طور خودکار تابع شما را با ورودی‌های مختلف تست خواهد کرد.

✅ این تمرین را در ویرایشگر خود پیاده‌سازی کنید. به یاد داشته باشید که تابع باید ارزش نهایی را به‌عنوان یک عدد برگرداند.

نمونه‌ها

ورودی نمونه ۱
calculator(8, 3, [1, 2, 3, 4, 5, 6, 7, 8])
خروجی نمونه ۱
6
ورودی نمونه ۲
calculator(8, 1, [1, 2, 3, 4, 5, 6, 7, 8])
خروجی نمونه ۲
-4

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود