1015 - Sum Vec

De la Universitas MediaWiki

Cerința

Se consideră un șir cu n elemente, numere naturale. Folosind metoda Divide et Impera, determinați suma elementelor acestui șir.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentând suma cerută.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele șirului vor fi mai mici decât 1.000.000
  • se recomandă folosirea metodei Divide et Impera

Exemplul 1

Intrare

6
4 1 8 4 3 5 

Ieșire

25

Exemplul 2

Intrare

4
4 1 8  

Ieșire

Trebuie să introduceți exact 4 elemente. Încercați din nou.

Rezolvare

def citeste_sir():
    n = int(input("Introduceți numărul de elemente: "))
    
    if 1 <= n <= 1000:
        input_line = input("Introduceți elementele șirului separate prin spațiu: ")
        arr = [int(x) for x in input_line.split()]
        
        # Verificăm dacă numărul de elemente este corect
        if len(arr) != n:
            print(f"Trebuie să introduceți exact {n} elemente. Încercați din nou.")
            return citeste_sir()  # Recitim șirul dacă nu sunt suficiente elemente
       
        for element in arr:
            # Verificăm restricția pentru elemente
            if element >= 1000000:
                print("Elementul trebuie să fie mai mic decât 1.000.000. Încercați din nou.")
                return citeste_sir()  # Recitim șirul dacă restricția nu este îndeplinită
        return arr
    else:
        print("Numărul de elemente trebuie să fie între 1 și 1000. Încercați din nou.")
        return citeste_sir()  # Recitim șirul dacă restricția nu este îndeplinită

# Citirea datelor de intrare
arr = citeste_sir()

# Calculul și afișarea rezultatului
rezultat = suma_divide_et_impera(arr, 0, len(arr) - 1)
print(f"Suma elementelor șirului este: {rezultat}")