3807 - Sume Gauss De Sume Gauss: Diferență între versiuni
De la Universitas MediaWiki
Linia 10: | Linia 10: | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
* | * 1 ⩽ '''n''' ⩽ 1.000.000 | ||
* cele '''n''' numere citite vor fi mai mici decât '''4.000.000''' | |||
== Exemplul 1 == | == Exemplul 1 == |
Versiunea de la data 19 martie 2023 18:21
Sursa: [1]
Cerinţa
Se dau n numere naturale. Pentru fiecare numar x, calculati 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x).
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 cele n sume calculate.
Restricţii şi precizări
- 1 ⩽ n ⩽ 1.000.000
- cele n numere citite vor fi mai mici decât 4.000.000
Exemplul 1
- Intrare
- 5
- 5 3 2 10 7
- Ieșire
- 35 10 4 220 84
Exemplul 2
- Intrare
- 0
- Ieșire
- Numarul de teste trebuie sa fie intre 1 si 1000000
Rezolvare
#3807
def partial_sum(x):
current_sum = 0
for j in range(1, x+1):
current_sum += j
return current_sum
def total_sum(x):
sum = 0
for j in range(1, x+1):
sum += partial_sum(j)
return sum
def validate_n(n):
if not 1 <= n <= 1000000:
print("Numarul de teste trebuie sa fie intre 1 si 1000000")
raise ValueError
def validate_x(x):
if x >= 4000000:
print("Numarul introdus trebuie sa fie mai mic decat 4000000")
raise ValueError
if __name__ == "__main__":
n = int(input("Introduceti numarul de teste: "))
validate_n(n)
for i in range(n):
x = int(input(f"Introduceti valoarea {i+1}: "))
validate_x(x)
print(total_sum(x))