1567 - Sum Prim Doi: Difference between revisions
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. | |||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
def | 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 | return numar >= 10 | ||
def | 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( | 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: | |||
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.") | 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>