0046 - Sumă Pare

From Bitnami MediaWiki
Revision as of 11:41, 11 February 2023 by Bogdan.Pop (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/46/sumapare 0046 - Suma Pare] ---- == Cerinţa == Să se scrie un program care citește numărul natural '''numar''' și determină suma S = 2 + 4 + ... + 2 * '''numar'''. == Date de intrare == Programul citește de la tastatură numărul '''numar''' == Date de ieșire == Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse.", urmat, pe rândul următor, de mesajul: "Suma este: " și suma cerută. În cazul...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: 0046 - Suma Pare


Cerinţa[edit | edit source]

Să se scrie un program care citește numărul natural numar și determină suma S = 2 + 4 + ... + 2 * numar.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul numar

Date de ieșire[edit | edit source]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse.", urmat, pe rândul următor, de mesajul: "Suma este: " și suma cerută. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa "Datele de intrare nu corespund restricțiilor impuse.".

Restricţii şi precizări[edit | edit source]

  • numar ∈ ℕ
  • 0 < numar ⩽ 10.000

Exemplu[edit | edit source]

Intrare
48
Ieșire
Datele introduse corespund restricțiilor impuse.
Suma este: 2352


Intrare
abc
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Intrare
-25
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0046 - Suma Pare

def validare_date_numar(numar: str) -> bool:

   if numar.isdigit():
       if 0 < int(numar) <= 10_000:
           return True
   return False


def suma_pare(numar: int) -> int:

   raspuns: int = lambda n: sum([nr for nr in range(0, 2*numar + 1, 2)])
   return raspuns(numar)


if __name__ == "__main__":

   numar = input()
   
   if validare_date_numar(numar):
       numar = int(numar)
       
       print("Datele de intrare corespund restricțiilor impuse.")
       print(f'Suma este: {suma_pare(numar)}')
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")
       

</syntaxhighlight>

Rezolvare ver. 2[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0046 - Suma Pare

def validare_date_numar(numar: str) -> bool:

   if numar.isdigit():
       if 0 < int(numar) <= 10_000:
           return True
   return False


def suma_pare(numar: int) -> int:

   suma: int = 0
   for nr in range(0, 2 * numar + 1, 2):
       suma += nr
   
   return suma


if __name__ == "__main__":

   numar = input()
   
   if validare_date_numar(numar):
       numar = int(numar)
       
       print("Datele de intrare corespund restricțiilor impuse.")
       print(f'Suma este: {suma_pare(numar)}')
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")
       

</syntaxhighlight>