1567 - Sum Prim Doi

From Bitnami MediaWiki

sursa: [1]

Cerinţa[edit | edit source]

Se citesc numere naturale până când se introduce numărul 0. Afișați suma obținută prin adunarea numerelor formate din primele două cifre ale numerelor citite.

Date de intrare[edit | edit source]

Programul citește de la tastatură numere până când se introduce 0.

Date de ieşire[edit | edit source]

Programul va afișa pe ecran suma numerelor formate din primele 2 cifre ale numerelor citite.

Restricții și precizări[edit | edit source]

  • Numerele cu mai puțin de 2 cifre nu se iau în considerare.
  • Numerele sunt mai mici decât 100.000.
  • Dacă nu avem numere de cel puțin 2 cifre, atunci se va afișa 0.

Exemplu[edit | edit source]

Intrare
3455 66 7 8 22 11221 0
Ieșire
Datele introduse sunt valide.
133

Explicație[edit | edit source]

34 + 66 + 22 + 11 = 133.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

def este_numar_valid(numar):

   """
   Verifică dacă un număr are cel puțin 2 cifre.
   """
   return numar >= 10


def obtine_primele_doua_cifre(numar):

   """
   Returnează primele două cifre ale unui număr.
   """
   return int(str(numar)[:2])


if __name__ == "__main__":

   # Inițializăm suma cu 0
   suma = 0
   # Citim numere până când se introduce 0
   while True:
       try:
           numar = int(input("Introduceți un număr natural (0 pentru a încheia citirea): "))
       except ValueError:
           print("Introduceți un număr natural valid!")
           continue
       # Verificăm dacă numărul are cel puțin 2 cifre
       if not este_numar_valid(numar):
           if numar == 0:
               print("Citire încheiată!")
               break
           else:
               print("Numărul introdus nu are cel puțin 2 cifre. Introduceți alt număr.")
               continue
       # Adunăm primele două cifre ale numărului la suma
       suma += obtine_primele_doua_cifre(numar)
   print("Datele sunt introduse corect.")
   # Afișăm suma obținută
   print(f"Suma numerelor formate din primele două cifre ale numerelor citite este: {suma}")

</syntaxhighlight>