0826 - CifMinParRec: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerinţa== Să se scrie o python care să returneze cea mai mică cifră pară 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 c...
 
No edit summary
Line 18: Line 18:
cifminpar(2154) este code>2</code>. <br>
cifminpar(2154) este code>2</code>. <br>
cifminpar(1157) este code>-1</code>.
cifminpar(1157) este code>-1</code>.
==Important==
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
==Rezolvare==
==Rezolvare==
def validare_input(n):
    if not n.isdigit() or int(n) >= 2000000000:
        return False
    return True
  def cifminpar(n):
  def cifminpar(n):
     if n < 0 or n > 2000000000:
     if not validare_input(n):
         print("Datele de intrare nu corespund restricțiilor impuse.")
         return "Datele de intrare nu corespund restricțiilor impuse."  
        return
    minpar = -1
     cifre = list(str(n))
     for cifra in str(n):
    cifra_minima_para = float('inf')
        cifra = int(cifra)
    for cifra in cifre:
         if cifra % 2 == 0:
         if int(cifra) % 2 == 0:
             if minpar == -1 or cifra < minpar:
             cifra_minima_para = min(cifra_minima_para, int(cifra))
                minpar = cifra               
     if cifra_minima_para == float('inf'):
    return minpar
        print("-1")
#Putem crea și o funcție main pentru a testa funcția cifminpar:
def main():
    n = input("Introduceti un numar natural: ")
    rezultat = cifminpar(n)
     if isinstance(rezultat, int):
        if rezultat == -1:
            print("Numarul nu contine cifre pare.")
        else:
            print(f"Cea mai mica cifra para din {n} este {rezultat}.")
     else:
     else:
         print(cifra_minima_para)
         print(rezultat)
  print(cifminpar(1157)) #va afișa pe ecran <code>-1</code>
  if __name__ == '__main__':
    main()
#Această funcție va solicita utilizatorului să introducă un număr natural, va apela funcția cifminpar și va afișa rezultatul. Dacă funcția cifminpar întoarce o valoare non-numerică, aceasta va fi afișată direct în consolă.

Revision as of 09:49, 25 March 2023

Cerinţa

Să se scrie o python care să returneze cea mai mică cifră pară 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 cifminpar funcția va avea un parametru reprezentând numărul dat numărul pentru care se calculează cifra minimă pară va fi mai mic decât 2.000.000.000 dacă numărul nu conţine nici o cifră pară, se va returna valoarea -1

Exemplu

cifminpar(2154) este code>2.
cifminpar(1157) este code>-1.

Important

Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

Rezolvare

def validare_input(n):
   if not n.isdigit() or int(n) >= 2000000000:
       return False
   return True
def cifminpar(n):
   if not validare_input(n):
       return "Datele de intrare nu corespund restricțiilor impuse."    
   minpar = -1
   for cifra in str(n):
       cifra = int(cifra)
       if cifra % 2 == 0:
           if minpar == -1 or cifra < minpar:
               minpar = cifra                
   return minpar
#Putem crea și o funcție main pentru a testa funcția cifminpar:
def main():
   n = input("Introduceti un numar natural: ")
   rezultat = cifminpar(n)
   if isinstance(rezultat, int):
       if rezultat == -1:
           print("Numarul nu contine cifre pare.")
       else:
           print(f"Cea mai mica cifra para din {n} este {rezultat}.")
   else:
       print(rezultat)
if __name__ == '__main__':
   main()
#Această funcție va solicita utilizatorului să introducă un număr natural, va apela funcția cifminpar și va afișa rezultatul. Dacă funcția cifminpar întoarce o valoare non-numerică, aceasta va fi afișată direct în consolă.