Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
2694 - Min Max2
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Cerință== Se dau '''2 numere naturale''' cu exact '''3 cifre''' fiecare, să se afișeze '''cel mai mare și cel mai mic''' număr de două cifre scris cu o cifră din '''primul''' număr și cu o cifră din '''al doilea'''. ==Date de intrare== Programul citește de la tastatură 2 numere separate prin spații. ==Date de ieșire== Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran '''cel mai mare și cel mai mic''' număr de două cifre scris cu o cifră din '''primul''' număr și cu o cifră din '''al doilea''' în această ordine, separate prin spații.În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse." ==Restricții și precizări== *100 ≤ '''a''' ≤ '''b''' ≤ 999 ==Exemplul 1== ;Intrare :123 912 ;Ieșire :Datele de intrare corespund restricțiilor impuse. :93 11 ==Rezolvare== ===Rezolvare ver. 1=== <syntaxhighlight lang="python" line="1" start="1"> def validare(a, b): if 100 <= a <= b <= 999: return True return False def maxi(n): ma = 0 while n: if n % 10 > ma: ma = n % 10 n //= 10 return ma def minim_maxim2(a, b): max1 = maxi(a) max2 = maxi(b) if max1 > max2: ma = max1 * 10 + max2 else: ma = max2 * 10 + max1 v = [0] * 4 v1 = [0] * 4 p = p1 = 0 result = str(ma) + ' ' while a: v[p] = a % 10 p += 1 a //= 10 while b: v1[p1] = b % 10 p1 += 1 b //= 10 v = sorted(v[:p]) v1 = sorted(v1[:p1]) min1, min2 = v[0], v1[0] if v1[0] == 0 and v[0] == 0: mi = 10 for i in range(p): if v[i] < mi and v[i] != 0: mi = v[i] if v1[i] < mi and v1[i] != 0: mi = v1[i] m = mi * 10 result += str(m) else: if min1 == 0 or min2 == 0: if min1 > min2: result += str(min1 * 10) else: result += str(min2 * 10) else: if min1 < min2: result += str(min1 * 10 + min2) else: result += str(min2 * 10 + min1) return result if __name__ == "__main__": a, b = map(int, input().split()) if validare(a, b): print("Datele de intrare corespund restricțiilor impuse.") result = minim_maxim2(a, b) print(result) else: print("Datele de intrare nu corespund restricțiilor impuse.") </syntaxhighlight> ==Explicatie== Acest cod este o implementare a unei funcții care primește două numere întregi a și b și determină o valoare maximă și o valoare minimă într-un anumit mod. Funcția validare(a, b) verifică dacă valorile introduse pentru a și b sunt între 100 și 999, inclusiv, și returnează True dacă da, altfel returnează False. Funcția maxi(n) primește un număr întreg n și determină cifra maximă din numărul respectiv. Se face acest lucru prin iterarea prin cifrele numărului (obținute prin împărțirea repetată la 10) și compararea fiecărei cifre cu valoarea maximă curentă. Funcția minim_maxim2(a, b) calculează valoarea maximă și valoarea minimă într-un anumit mod. Mai întâi se calculează valoarea maximă (denumită ma) prin combinarea cifrei maxime din fiecare dintre cele două numere într-un singur număr. Apoi, se descompun numerele a și b în cifre și se ordonează cifrele crescător. Cifrele sunt stocate în listele v și v1. Valoarea minimă este apoi determinată ca fiind prima cifră din aceste liste. Dacă una dintre aceste cifre este 0, se caută cea mai mică cifră nenulă în cele două liste și se combină pentru a forma valoarea minimă. În cele din urmă, valoarea minimă și valoarea maximă sunt combinate pentru a forma valoarea finală. În secțiunea if __name__ == "__main__": se primește intrarea de la utilizator pentru valorile a și b. Dacă valorile introduse sunt valide, se afișează un mesaj corespunzător și se apelează funcția minim_maxim2(a, b) pentru a determina valorile minime și maxime. Altfel, se afișează un mesaj de eroare.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width