3807 - Sume Gauss De Sume Gauss: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
No edit summary
Dragos1234 (talk | contribs)
Line 7: Line 7:


== Date de ieșire ==
== Date de ieșire ==
Programul va afișa pe ecran cele '''n''' sume calculate.
Acest program primește un număr întreg '''n''' de teste și pentru fiecare test primește un număr întreg '''x'''. Programul calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între '''1''' și '''x''', iar apoi afișează această sumă. Funcția "partial_sum" calculează suma parțială pentru un singur număr întreg x, iar funcția "total_sum" calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x. Funcțiile "validate_n" și "validate_x" verifică dacă n și x respectă anumite condiții, respectiv dacă sunt în intervalul specificat. Dacă '''n''' sau '''x''' nu respectă condițiile, programul afișează un mesaj de eroare și se oprește. În final, programul afișează suma tuturor sumelor parțiale pentru fiecare test introdus.


== Restricţii şi precizări ==
== Restricţii şi precizări ==

Revision as of 18:29, 19 March 2023

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

Acest program primește un număr întreg n de teste și pentru fiecare test primește un număr întreg x. Programul calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x, iar apoi afișează această sumă. Funcția "partial_sum" calculează suma parțială pentru un singur număr întreg x, iar funcția "total_sum" calculează suma tuturor sumelor parțiale pentru numerele întregi cuprinse între 1 și x. Funcțiile "validate_n" și "validate_x" verifică dacă n și x respectă anumite condiții, respectiv dacă sunt în intervalul specificat. Dacă n sau x nu respectă condițiile, programul afișează un mesaj de eroare și se oprește. În final, programul afișează suma tuturor sumelor parțiale pentru fiecare test introdus.

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

<syntaxhighlight lang="python" line>

  1. 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))

</syntaxhighlight>