0108 - Aparitii 2: Difference between revisions
Am creat de la zero. |
No edit summary |
||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/108/aparitii2] | |||
== Cerinţa == | == Cerinţa == | ||
Să se scrie un program care să determine numărul de apariţii ale primei cifre în scrierea unui număr natural citit de la tastatură. | Să se scrie un program care să determine numărul de apariţii ale primei cifre în scrierea unui număr natural citit de la tastatură. | ||
Line 14: | Line 15: | ||
== Rezolvare == | == Rezolvare == | ||
=== Rezolvare ver. 1 === | |||
<syntaxhighlight lang="python" line> | |||
def determina_prima_cifra_si_aparitii(numar): | |||
""" | |||
Determină prima cifră a unui număr și numără aparițiile sale în număr. | |||
:param numar: Numărul dat. | |||
:return: Un tuplu conținând prima cifră și numărul de apariții ale primei cifre în număr. | |||
""" | |||
prima_cifra = int(str(numar)[0]) | |||
contor = 0 | |||
while numar > 0: | |||
if numar % 10 == prima_cifra: | |||
contor += 1 | |||
numar //= 10 | |||
return prima_cifra, contor | |||
def main(): | |||
# Citim numărul natural și validăm intrarea | |||
while True: | |||
try: | |||
numar = int(input("Introduceți un număr natural: ")) | |||
if numar <= 0: | |||
print("Numărul introdus trebuie să fie un număr natural pozitiv!") | |||
continue | |||
break | |||
except ValueError: | |||
print("Nu ați introdus un număr natural pozitiv! Vă rugăm să încercați din nou.") | |||
# Determinăm prima cifră și numărul de apariții | |||
prima_cifra, numar_aparitii = determina_prima_cifra_si_aparitii(numar) | |||
# Afișăm rezultatul | |||
print("Datele sunt introduse corect.") | |||
print(f"Numărul de apariții ale primei cifre ({prima_cifra}) în numărul dat este: {numar_aparitii}") | |||
if __name__ == "__main__": | |||
main() | |||
</syntaxhighlight> | |||
=== Rezolvare ver. 2 === | |||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# Citim numărul natural și validăm intrarea | # Citim numărul natural și validăm intrarea |
Latest revision as of 10:07, 15 May 2023
Sursa: [1]
Cerinţa[edit | edit source]
Să se scrie un program care să determine numărul de apariţii ale primei cifre în scrierea unui număr natural citit de la tastatură.
Date de intrare[edit | edit source]
Programul va citi de la tastatură un număr natural.
Date de ieşire[edit | edit source]
Programul va afişa pe ecran numărul de apariţii ale primei cifre în scrierea numărului citit.
Restricții și precizări[edit | edit source]
- numărul citit va fi mai mic decât 2.000.000.000
Exemplu[edit | edit source]
- Intrare
- 57051
- Ieșire
- 2
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
def determina_prima_cifra_si_aparitii(numar):
""" Determină prima cifră a unui număr și numără aparițiile sale în număr.
:param numar: Numărul dat. :return: Un tuplu conținând prima cifră și numărul de apariții ale primei cifre în număr. """ prima_cifra = int(str(numar)[0]) contor = 0
while numar > 0: if numar % 10 == prima_cifra: contor += 1 numar //= 10
return prima_cifra, contor
def main():
# Citim numărul natural și validăm intrarea while True: try: numar = int(input("Introduceți un număr natural: ")) if numar <= 0: print("Numărul introdus trebuie să fie un număr natural pozitiv!") continue break except ValueError: print("Nu ați introdus un număr natural pozitiv! Vă rugăm să încercați din nou.")
# Determinăm prima cifră și numărul de apariții prima_cifra, numar_aparitii = determina_prima_cifra_si_aparitii(numar)
# Afișăm rezultatul print("Datele sunt introduse corect.") print(f"Numărul de apariții ale primei cifre ({prima_cifra}) în numărul dat este: {numar_aparitii}")
if __name__ == "__main__":
main()
</syntaxhighlight>
Rezolvare ver. 2[edit | edit source]
<syntaxhighlight lang="python" line>
- Citim numărul natural și validăm intrarea
while True:
try: numar = int(input("Introduceti un numar natural: ")) if numar <= 0: print("Numarul introdus trebuie sa fie un numar natural pozitiv!") continue break except ValueError: print("Nu ati introdus un numar natural pozitiv! Va rugam sa incercati din nou.")
- Inițializăm contorul pentru prima cifră a numărului
contor = 0
- Determinăm prima cifră a numărului și numărăm câte apariții are în număr
prima_cifra = int(str(numar)[0]) while numar > 0:
if numar % 10 == prima_cifra: contor += 1 numar //= 10
- Afișăm numărul de apariții ale primei cifre a numărului dat
print("Datele sunt introduse corect.") print(f"Numărul de apariții ale primei cifre ({prima_cifra}) în numărul dat este: {contor}")
</syntaxhighlight>