0108 - Aparitii 2
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>