0894 - CifMinMax
Cerinţa
Să se scrie o funcție Python care să determine cea mai mare și cea mai mică cifră a unui număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire.
Restricţii şi precizări
- numele funcției va fi cifminmax
- funcția va avea trei parametri: primul parametru reprezintă numărul pentru care se calculează valorile cerute;al doilea parametru va reprezenta cifra maximă, iar al treilea va reprezenta cifra minimă
- numărul pentru care se calculează cele doua valori va fi mai mic decât 2.000.000.000
Explicație
Funcția "cifminmax" primește ca parametri un număr natural "n" și două variabile "maxim" și "minim", care sunt inițializate cu valoarea 0 și, respectiv, 9. În continuare, se parcurg cifrele numărului "n" primit ca parametru cu ajutorul unui while loop, prin extragerea cifrei curente cu operatorul modulo și împărțirea ulterioară la 10. Dacă cifra curentă este mai mare decat "maxim", valoarea variabilei "maxim" este actualizată cu aceasta, iar dacă este mai mică decât "minim", valoarea variabilei "minim" este actualizată cu aceasta. La final, funcția returnează valorile "maxim" si "minim".
Rezolvare
<syntaxhighlight lang="python"> def validate_cifminmax(n, max_cif, min_cif):
if n >= 2000000000: return False return True
def cifminmax(n, max_cif, min_cif):
while n > 0: cif = n % 10 if cif > max_cif: max_cif = cif if cif < min_cif: min_cif = cif n //= 10 return max_cif, min_cif
def main():
n = 123456789 max_cif = -1 min_cif = 10
if validate_cifminmax(n, max_cif, min_cif): max_cif, min_cif = cifminmax(n, max_cif, min_cif) print("Cea mai mare cifra este:", max_cif) print("Cea mai mica cifra este:", min_cif) else: print("Date de intrare invalide")
if __name__ == '__main__':
main()
</syntaxhighlight>