0864 - CifMinMax: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
Line 15: | Line 15: | ||
===Rezolvare ver. 1=== | ===Rezolvare ver. 1=== | ||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare(n): | |||
return 0 <= int(n) < 2_000_000_000 | |||
def cifminmax(numar, cifra_maxima, cifra_minima): | def cifminmax(numar, cifra_maxima, cifra_minima): | ||
cifra_maxima = 0 | cifra_maxima = 0 | ||
cifra_minima = 9 | cifra_minima = 9 | ||
while numar > 0: | while numar > 0: | ||
cifra_curenta = numar % 10 | cifra_curenta = numar % 10 | ||
if cifra_curenta > cifra_maxima: | if cifra_curenta > cifra_maxima: | ||
cifra_maxima = cifra_curenta | cifra_maxima = cifra_curenta | ||
if cifra_curenta < cifra_minima: | if cifra_curenta < cifra_minima: | ||
cifra_minima = cifra_curenta | cifra_minima = cifra_curenta | ||
numar //= 10 | numar //= 10 | ||
return cifra_maxima, cifra_minima | return cifra_maxima, cifra_minima | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
numar = | numar = input("Introduceti un numar pozitiv si mai mic decat 2.000.000.000: ") | ||
if numar | if validare(numar): | ||
print(" | numar = int(numar) | ||
print("Datele introduse corespund restricțiilor impuse") | |||
cifra_maxima, cifra_minima = cifminmax(numar, 0, 9) | cifra_maxima, cifra_minima = cifminmax(numar, 0, 9) | ||
print(f"Cea mai mare cifra a numarului {numar} este {cifra_maxima}.") | print(f"Cea mai mare cifra a numarului {numar} este {cifra_maxima}.") | ||
print(f"Cea mai mica cifra a numarului {numar} este {cifra_minima}.") | print(f"Cea mai mica cifra a numarului {numar} este {cifra_minima}.") | ||
else: | |||
print("Datele introduse nu corespund restricțiilor impuse") | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 20:26, 19 March 2023
Cerință
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 de 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
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 ver. 1
<syntaxhighlight lang="python" line="1" start="1"> def validare(n):
return 0 <= int(n) < 2_000_000_000
def cifminmax(numar, cifra_maxima, cifra_minima):
cifra_maxima = 0 cifra_minima = 9
while numar > 0: cifra_curenta = numar % 10
if cifra_curenta > cifra_maxima: cifra_maxima = cifra_curenta
if cifra_curenta < cifra_minima: cifra_minima = cifra_curenta
numar //= 10
return cifra_maxima, cifra_minima
if __name__ == '__main__':
numar = input("Introduceti un numar pozitiv si mai mic decat 2.000.000.000: ")
if validare(numar): numar = int(numar) print("Datele introduse corespund restricțiilor impuse") cifra_maxima, cifra_minima = cifminmax(numar, 0, 9) print(f"Cea mai mare cifra a numarului {numar} este {cifra_maxima}.") print(f"Cea mai mica cifra a numarului {numar} este {cifra_minima}.") else: print("Datele introduse nu corespund restricțiilor impuse")
</syntaxhighlight>