نمایش 1 پاسخ رشته ها
  • نویسنده
    نوشته‌ها
    • #3048
      arash.firouz79
      مشارکت کننده
        Up
        0
        Down
        ::

        سجاد یک لیست n تایی از اعداد دارد و در گروه‌های مختلف آن را تقسیم‌بندی می‌کند؛ به این صورت که m عضو اول را در یگ گروه قرار می‌دهد، m عضو بعدی را در یک گروه و به همین ترتیب اعضا را گروه بندی می‌کند (دقت کنید که گروه آخر ممکن است کمتر از m عضو داشته باشد).

        سجاد از روی این اعداد، یک لیست جدید می‌سازد که عضو i ام آن، جمع اعضای گروه i ام باشد.

        او که به شطرنج علاقه خاصی دارد به صورت یکی در میان اعضای لیست جدید را از هم کم و زیاد می‌کند؛ به این معنا که از عضو اول لیست جدید، عضو دوم را کم می‌کند و سپس عضو سوم را اضافه می‌کند و از این مقدار عضو چهارم را کم می‌کند و این روند را ادامه می‌دهد تا به آخر لیست جدید برسد و سپس مقدار نهایی را به عنوان ارزش لیست در نظر می‌گیرد.

        مثال محاسبه ارزش لیست
        به طور مثال اگر سجاد لیست زیر را داشته باشد و مقدار m برابر با ۳ باشد:

        [1,2,3,4,5,6,7,8]

        آنگاه لیست جدید به صورت زیر می‌شود:

        [6,15,15]

        بعد از آن سجاد اعداد لیست را به صورت شطرنجی جمع می‌کند و ارزش لیست برابر با عبارت زیر می‌شود:

        6−15+15=6

        بنابراین عدد نهایی سجاد برابر با ۶ می‌شود. هم‌چنین اگر مقدار m در این سوال برابر با یک بود ارزش نهایی برابر با عبارت زیر می‌شود:

        1−2+3−4+5−6+7−8=−4
        در این سوال شما باید تابع ‍‍calculator(n, m, li) را پیاده‌سازی کنید که به ترتیب n (تعداد اعضای لیست)، و m (تعداد اعضای هر گروه) و خود لیست را ورودی بگیرد و ارزش نهایی لیست را بر‌گرداند.

      • #3052
        Up
        0
        Down
        ::
            `
        def calculator(n, m, li):
            print("Your list: ", li)
            for i in range(0, n//m):
                z1 = sum(li[0 + i*m : (i+1)*m])
                x.append(z1)
            if n%m != 0:
                z2 = sum(li[(n//m)*m : ])
                x.append(z2)
            print("list of summations: ", x)
            z3 = len(x)
            res = 0
            for i in range(0, z3):
                res += ((-1)**i) * x[i]
            print("List's final value: ", res)
        
        flag = True
        
        while(flag):
            x = []
            n = int(input("Enter n: "))
            m = int(input("Enter m: "))
            li = list(map(int, input("Enter your list numbers separated by space: ").split()))
        
            if n < 2: print("n (lenght of list) must be at least 2. Try again! ") flag = False elif m >= n:
                print("m must be less than n. Try again!")
                flag = False
            elif len(li) != n:
                print("Please enter exactly ", n, " elements for your list, separated by 1 space. Try again!")
                flag = False
            else:
                calculator(n, m, li)
        
            if flag == True:
                resp = input("Do you want to continue (Yes or No)?: ")
            if resp.upper() == "NO" or resp.upper() == "N":
                flag = False
        `
        
        
        
    نمایش 1 پاسخ رشته ها
    • شما برای پاسخ به این موضوع باید وارد شوید.
    پیمایش به بالا