1015 - Sum Vec

From Bitnami MediaWiki
Revision as of 19:46, 3 December 2023 by Gabii (talk | contribs) (Pagină nouă: = Cerința = Se consideră un șir cu <code>n</code> 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 <code>n</code>, iar apoi cele <code>n</code> elemente ale șirului. = Date de ieșire = Programul va afișa pe ecran numărul <code>S</code>, reprezentând suma cerută. = Restricții și precizări = * <code>1 ≤ n ≤ 1000</code> * elementele șirulu...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit]

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

Date de intrare[edit]

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

Date de ieșire[edit]

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

Restricții și precizări[edit]

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

Exemplul 1[edit]

Intrare

6
4 1 8 4 3 5 

Ieșire

25

Exemplul 2[edit]

Intrare

4
4 1 8  

Ieșire

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

Rezolvare[edit]

<syntaxhighlight lang="python3" line="1"> 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ă
  1. Citirea datelor de intrare

arr = citeste_sir()

  1. Calculul și afișarea rezultatului

rezultat = suma_divide_et_impera(arr, 0, len(arr) - 1) print(f"Suma elementelor șirului este: {rezultat}") </syntaxhighlight>