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
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
Programul va citi de la tastatură un număr natural.
Date de ieşire
Programul va afişa pe ecran numărul de apariţii ale primei cifre în scrierea numărului citit.
Restricții și precizări
- numărul citit va fi mai mic decât 2.000.000.000
Exemplu
- Intrare
- 57051
- Ieșire
- 2
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>
- 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>