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
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi pe un rând nou cea mai mare . În cazul în care numărul introdus depășește limitele date, se va afișa "Numarul introdus nu este valid.", iar dacă numărul introdus nu este întreg, se va afișa "Nu ati introdus un numar intreg."
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>