1030 - Sume Produse: Diferență între versiuni
Linia 25: | Linia 25: | ||
== Exemplul 2 == | == Exemplul 2 == | ||
; Intrare | ; Intrare | ||
: | : 0 | ||
; Ieșire | ; Ieșire | ||
: | : Eroare: numarul de numere trebuie sa fie intre 1 si 100000. | ||
<br> | <br> | ||
== Exemplul 3 == | == Exemplul 3 == | ||
; Intrare | ; Intrare |
Versiunea de la data 19 martie 2023 19:40
Sursa: [1]
Cerinţa
Se dau n numere naturale, unde n este număr natural par. Să se calculeze suma produselor dintre fiecare număr din prima jumătate și fiecare număr din a doua jumătate a șirului de numere date.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieșire
Programul dat mai sus citeste de la utilizator o lista de numere și calculează suma produselor dintre toate perechile de numere din lista, unde primul număr din pereche se află în prima jumătate a listei, iar al doilea număr se află în a doua jumătate a listei.
Datele de ieșire ale programului sunt o valoare numerică reprezentând suma produselor dintre toate perechile de numere din lista, așa cum a fost descris mai sus. Această valoare este afișată la ieșirea programului.
Restricţii şi precizări
- 1 ⩽ n ⩽ 100.000
- cele n numere citite vor fi mai mici sau egale cu 10.000
Exemplul 1
- Intrare
- 4
- 2 3 4 5
- Ieșire
- 45
Exemplul 2
- Intrare
- 0
- Ieșire
- Eroare: numarul de numere trebuie sa fie intre 1 si 100000.
Exemplul 3
- Intrare
- 7
- Ieșire
- Datele corespund cerințelor.
- 25401600
Rezolvare
#1030
def citeste_numere():
while True:
n = int(input("Numar de numere: "))
if n >= 1 and n <= 100000:
break
else:
print("Eroare: numarul de numere trebuie sa fie intre 1 si 100000.")
while True:
numere = input("Numere: ").split()
if len(numere) == n:
numere_ok = True
for numar in numere:
if int(numar) > 10000:
print("Eroare: toate numerele trebuie sa fie mai mici sau egale cu 10000.")
numere_ok = False
break
if numere_ok:
return numere
else:
print("Eroare: trebuie introduse exact", n, "numere.")
def calculeaza_suma_produse(numere):
suma = 0
# parcurgem toate numerele din prima jumatate a sirului
for i in range(len(numere)//2):
# parcurgem toate numerele din a doua jumatate a sirului
for j in range(len(numere)//2, len(numere)):
# calculam produsul dintre cele doua numere curente
produs = int(numere[i]) * int(numere[j])
# adaugam produsul la suma totala
suma += produs
return suma
if __name__ == '__main__':
numere = citeste_numere()
suma = calculeaza_suma_produse(numere)
print(suma)