0066 - Numarul de Cifre

From Bitnami MediaWiki

Sursa: [1]


Cerinţa[edit | edit source]

Să se scrie un program care să determine numărul de cifre ale 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 cifre ale numărului citit.

Restricţii şi precizări[edit | edit source]

  • numărul citit va fi mai mic decât 2^31

Exemplu[edit | edit source]

Intrare
2705
Ieșire
4


Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0066 - Numarul de cifre
  1. Citim un număr natural de la tastatură și verificăm că este pozitiv

numar = int(input("Introduceti un numar natural: ")) while numar <= 0:

   print("Numarul introdus trebuie sa fie pozitiv.")
   numar = int(input("Introduceti un numar natural: "))
  1. Inițializăm numărul de cifre cu 0

nr_cifre = 0

  1. Folosim o buclă while pentru a calcula numărul de cifre

while numar > 0:

   # Folosim operatorul //= pentru a obține partea întreagă a împărțirii la 10 a numărului
   numar //= 10
   # Incrementăm numărul de cifre cu 1 la fiecare iterație
   nr_cifre += 1
  1. Afisăm validarea numărul de cifre

print(f"Datele introduse corespund resctrictiilor impuse.") print("Numarul are", nr_cifre, "cifre.")

</syntaxhighlight>

Rezolvare ver. 2[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0066 - Numarul de cifre
  1. Citim numărul de la tastatură

numar = int(input("Introduceți numărul: "))

  1. Verificăm dacă numărul este un număr natural pozitiv

if numar <= 0:

   print("Numărul trebuie să fie un număr natural pozitiv!")

else:

   # Calculam numarul de cifre ale numarului
   lungime = len(numar)
   
   # Afișăm validarea datelor de intrare și numărul de cifre
   print(f"Datele introduse corespund resctrictiilor impuse.")
   print("Numărul de cifre al numărului", numar, "este:", lungime)

</syntaxhighlight>

Rezolvare ver. 3[edit | edit source]

<syntaxhighlight lang="python" line>

def calculate_number_of_digits(numar):

   nr_cifre = 0
   while numar > 0:
       numar //= 10
       nr_cifre += 1
   return nr_cifre

def validate_positive_number():

   numar = int(input("Introduceti un numar natural: "))
   while numar <= 0:
       print("Numarul introdus trebuie sa fie pozitiv.")
       numar = int(input("Introduceti un numar natural: "))
   return numar

if __name__ == '__main__':

   # Validate the positive number input
   numar = validate_positive_number()
   # Calculate the number of digits
   nr_cifre = calculate_number_of_digits(numar)
   # Display the result
   print(f"Datele introduse corespund resctrictiilor impuse.")
   print("Numarul are", nr_cifre, "cifre.")

</syntaxhighlight>

Rezolvare ver. 4[edit | edit source]

<syntaxhighlight lang="python" line>

def calculate_number_of_digits(numar):

   return len(str(numar))

def validate_positive_number():

   numar = int(input("Introduceți numărul: "))
   if numar <= 0:
       print("Numărul trebuie să fie un număr natural pozitiv!")
       return None
   return numar

if __name__ == '__main__':

   # Validam datele de intrare
   numar = validate_positive_number()
   # Calculam numarul de cifre, daca numarul este valid
   if numar is not None:
       lungime = calculate_number_of_digits(numar)
       # Afisam rezultatul
       print(f"Datele introduse corespund resctrictiilor impuse.")
       print("Numărul de cifre al numărului", numar, "este:", lungime)

</syntaxhighlight>