1567 - Sum Prim Doi: Difference between revisions

From Bitnami MediaWiki
Am creat de la zero.
 
No edit summary
 
Line 1: Line 1:
sursa: [https://www.pbinfo.ro/probleme/1567/sumprimdoi]
== Cerinţa ==
== Cerinţa ==
Se citesc numere naturale până când se introduce numărul 0.
Se citesc numere naturale până când se introduce numărul 0.
Line 22: Line 23:


=== Explicație ===
=== Explicație ===
; 34 + 66 + 22 + 11 = 133.
34 + 66 + 22 + 11 = 133.


== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>


def is_valid_number(number):
def este_numar_valid(numar):
     """
     """
     Verifică dacă un număr are cel puțin 2 cifre.
     Verifică dacă un număr are cel puțin 2 cifre.
     """
     """
     return number >= 10
     return numar >= 10




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




# Inițializăm suma cu 0
if __name__ == "__main__":
suma = 0
    # Inițializăm suma cu 0
    suma = 0


# Citim numere până când se introduce 0
    # Citim numere până când se introduce 0
while True:
    while True:
    try:
        try:
        numar = int(input("Introduceți un număr natural (0 pentru a încheia citirea): "))
            numar = int(input("Introduceți un număr natural (0 pentru a încheia citirea): "))
    except ValueError:
        except ValueError:
        print("Introduceți un număr natural valid!")
            print("Introduceți un număr natural valid!")
        continue
            continue


    # Verificăm dacă numărul are cel puțin 2 cifre
        # Verificăm dacă numărul are cel puțin 2 cifre
    if not is_valid_number(numar):
        if not este_numar_valid(numar):
        if numar == 0:
            if numar == 0:
            print("Citire încheiată!")
                print("Citire încheiată!")
            break
                break
        else:
            else:
            print("Numărul introdus nu are cel puțin 2 cifre. Introduceți alt număr.")
                print("Numărul introdus nu are cel puțin 2 cifre. Introduceți alt număr.")
            continue
                continue


    # Adunăm primele două cifre ale numărului la suma
        # Adunăm primele două cifre ale numărului la suma
    suma += get_first_two_digits(numar)
        suma += obtine_primele_doua_cifre(numar)
print("Datele sunt introduse corect.")
    print("Datele sunt introduse corect.")
# Afișăm suma obținută
    # Afișăm suma obținută
print(f"Suma numerelor formate din primele două cifre ale numerelor citite este: {suma}")
    print(f"Suma numerelor formate din primele două cifre ale numerelor citite este: {suma}")


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 23:21, 15 May 2023

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>