1030 - Sume Produse: Diferență între versiuni
De la Universitas MediaWiki
Linia 39: | Linia 39: | ||
#1030 | #1030 | ||
def citeste_numere(): | def citeste_numere(): | ||
n = int(input("Numar de numere: ")) | while True: | ||
numere = input("Numere: ").split() | 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): | def calculeaza_suma_produse(numere): |
Versiunea de la data 19 martie 2023 19:37
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 va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."
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
- Ieșire
- Datele corespund cerințelor.
- 576
Exemplul 2
- Intrare
- 16
- Ieșire
- Datele introduse nu corespund cerințelor.
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)