1030 - Sume Produse: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
Line 39: | Line 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): |
Revision as of 19:37, 19 March 2023
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
<syntaxhighlight lang="python" line>
- 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)
</syntaxhighlight>