1030 - Sume Produse: Diferență între versiuni
Fără descriere a modificării |
Fără descriere a modificării |
||
Linia 46: | Linia 46: | ||
while True: | while True: | ||
n = int(input("Numar de numere: ")) | n = int(input("Numar de numere: ")) | ||
if 1 <= n <= 100000: | |||
break | break | ||
else: | |||
print("Eroare: numarul de numere trebuie sa fie intre 1 si 100000.") | print("Eroare: numarul de numere trebuie sa fie intre 1 si 100000.") | ||
Versiunea de la data 19 martie 2023 19:51
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.
În cazul în care datele de intrare nu corespund restricțiilor, se va afișa un mesaj de eroare pe ecran.
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
- 2
- 1000000000 45
- Ieșire
- Eroare: toate numerele trebuie sa fie mai mici sau egale cu 10000.
Rezolvare
#1030
def citeste_numere():
while True:
n = int(input("Numar de numere: "))
if 1 <= 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)