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

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

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

Date de ieşire

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

Restricții și precizări

  • 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

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

Explicație

34 + 66 + 22 + 11 = 133.

Rezolvare

<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>