0995 - Numere 6: Difference between revisions
No edit summary |
No edit summary |
||
Line 8: | Line 8: | ||
cele două numere date vor fi mai mici decât 2 000 000 000 | cele două numere date vor fi mai mici decât 2 000 000 000 | ||
== Exemplu 1 == | == Exemplu 1 == | ||
; | ; numere6in.txt | ||
: 36321 4173 | : 36321 4173 | ||
; | ; numere6out.txt | ||
: Datele introduse corespund restricțiilor impuse. | : Datele introduse corespund restricțiilor impuse. | ||
: 764333211 | : 764333211 | ||
<br> | <br> | ||
== Exemplu 2 == | == Exemplu 2 == | ||
; | ; numere6in.txt | ||
: 10 | : 10 | ||
; | ; numere6out.txt | ||
: Datele de intrare nu corespund restricțiilor impuse. | : Datele de intrare nu corespund restricțiilor impuse. | ||
<br> | <br> | ||
Line 49: | Line 49: | ||
while frecventa_cifre[cifra]: | while frecventa_cifre[cifra]: | ||
frecventa_cifre[cifra] -= 1 | frecventa_cifre[cifra] -= 1 | ||
file_out.write(str(cifra)) | |||
Line 55: | Line 55: | ||
file_in = open("numere6in.txt") | file_in = open("numere6in.txt") | ||
file_out = open("numere6out.txt", "w") | |||
numere = file_in.readline().split() | numere = file_in.readline().split() | ||
Line 65: | Line 66: | ||
except ValueError: | except ValueError: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 16:12, 22 March 2023
Cerința
Se dau două numere naturale diferite. Afişaţi cel mai mare număr care poate fi scris folosind toate cifrele celor două numere date.
Date de intrare
Fișierul de intrare numere6.in conține pe prima linie cele două numere.
Date de ieșire
Fișierul de ieșire numere6.out va conține pe prima linie numărul cerut.
Restricții și precizări
cele două numere date vor fi mai mici decât 2 000 000 000
Exemplu 1
- numere6in.txt
- 36321 4173
- numere6out.txt
- Datele introduse corespund restricțiilor impuse.
- 764333211
Exemplu 2
- numere6in.txt
- 10
- numere6out.txt
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line>
- 0995 Numere 6
def verificare(nr1, nr2):
if nr1 > 2000000 or nr2 > 2000000: raise ValueError return True
def numere6(nr_1, nr_2):
frecventa_cifre = []
for i in range(10): frecventa_cifre.append(0)
while nr_1: u_cif = int(nr_1 % 10) frecventa_cifre[u_cif] += 1 nr_1 //= 10
while nr_2: u_cif = int(nr_2 % 10) frecventa_cifre[u_cif] += 1 nr_2 //= 10
for cifra in range(9, -1, -1): while frecventa_cifre[cifra]: frecventa_cifre[cifra] -= 1 file_out.write(str(cifra))
if __name__ == '__main__':
file_in = open("numere6in.txt") file_out = open("numere6out.txt", "w") numere = file_in.readline().split()
try: numar_1 = int(numere[0]) numar_2 = int(numere[1]) verificare(numar_1, numar_2) numere6(numar_1, numar_2)
except ValueError: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>