0825 - CifMinRec: Difference between revisions

From Bitnami MediaWiki
mNo edit summary
No edit summary
Line 20: Line 20:
==Rezolvare==
==Rezolvare==
  def cifmin(numar):
  def cifmin(numar):
     # verificăm dacă numărul este mai mic decât 2 miliarde
     if not isinstance(numar, int):
     if numar < 2000000000:
        raise ValueError("Numărul trebuie să fie de tipul int.")
         # cazul de bază: numărul este format dintr-o singură cifră
    if numar < 0 or numar >= 2000000000:
         if numar < 10:
        raise ValueError("Numărul trebuie să fie mai mare sau egal cu 0 și mai mic decât 2.000.000.000.")
            return numar
     if numar == 0:
        # apelăm recursiv funcția pentru numărul obținut prin eliminarea ultimei cifre
         return 0
        # și comparăm cifra minimă găsită cu ultima cifră a numărului inițial
    cifre = []
         else:
    while numar > 0:
            cifra_min = cifmin(numar // 10)
         cifre.append(numar % 10)
            ultima_cifra = numar % 10
        numar //= 10
            return min(cifra_min, ultima_cifra)
    return min(cifre
     else:
def main():
         print("Datele de intrare nu corespund restricțiilor impuse.")
    try:
  print(cifmin(2050)) va afișa pe ecran <code>0</code>
         numar = int(input("Introduceți un număr natural: "))
        cifra_minima = cifmin(numar)
        print(f"Cifra minimă a numărului {numar} este {cifra_minima}.")
     except ValueError as ve:
         print(f"Datele de intrare nu corespund restricțiilor impuse. Mesaj de eroare: {ve}.")  
  if __name__ == '__main__':
    main()

Revision as of 09:33, 25 March 2023

Cerinţa

Să se scrie o python care să returneze cifra minimă a unui număr natural transmis ca parametru.

Date de intrare

Se va introduce de la tastatură un număr natural care va fi transmis ca perimetru

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse." În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.".

Restricţii şi precizări

numele funcției va fi cifmin funcția va avea un parametru reprezentând numărul dat numărul pentru care se calculează cifra minimă va fi mai mic decât 2.000.000.000

Exemplu

cifmin(2050) este 0.
cifmin(9782923251) este 0.

Rezolvare

def cifmin(numar):
   if not isinstance(numar, int):
       raise ValueError("Numărul trebuie să fie de tipul int.")
   if numar < 0 or numar >= 2000000000:
       raise ValueError("Numărul trebuie să fie mai mare sau egal cu 0 și mai mic decât 2.000.000.000.")
   if numar == 0:
       return 0
   cifre = []
   while numar > 0:
       cifre.append(numar % 10)
       numar //= 10
   return min(cifre)   
def main():
   try:
       numar = int(input("Introduceți un număr natural: "))
       cifra_minima = cifmin(numar)
       print(f"Cifra minimă a numărului {numar} este {cifra_minima}.")
   except ValueError as ve:
       print(f"Datele de intrare nu corespund restricțiilor impuse. Mesaj de eroare: {ve}.")    
if __name__ == '__main__':
   main()