4149 - Inlocuire Max: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerința== Se dă un vector cu n numere naturale. Să se înlocuiască fiecare element cu cel mai mare număr care se poate obține din cifrele lui și să se afișeze elementele astfel obținute în ordine inversă. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului. ==Date de ieșire== Programul afișează pe ecran elementele vectorului, după înlocuire, în ordine in...
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 23: Line 23:
:Datele de intrare nu corespund restricțiilor impuse.
:Datele de intrare nu corespund restricțiilor impuse.
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="">
<syntaxhighlight lang="python" line="1">
#4149 - Inlocuire Max
#4149 - Inlocuire Max
    # funcția sortează cifrele numărului primit, în ordine descrescătoare, iar mai apoi returnează
    # numărul astfel obținut
def transform(numar):
def transform(numar):
     cifre = [int(x) for x in str(numar)]
     cifre = [int(x) for x in str(numar)]
Line 30: Line 32:
     return int(''.join(map(str, cifre)))
     return int(''.join(map(str, cifre)))


def main():
if __name__ == '__main__':
     # citirea numarului de elemente
     # citirea numărului de elemente
     n = int(input())
     n = int(input())


Line 41: Line 43:
         print("Datele de intrare corespund restricțiilor impuse.")
         print("Datele de intrare corespund restricțiilor impuse.")


         # aplicarea functiei de transformare la fiecare element din lista
         # aplicarea functiei de transformare, la fiecare element din listă
         v_transform = [transform(x) for x in v]
         v_transform = [transform(x) for x in v]


         # afisarea valorilor transformate, in ordine inversa
         # afișarea valorilor transformate, în ordine inversă
         for i in range(n - 1, -1, -1):
         for i in range(n - 1, -1, -1):
             print(v_transform[i], end=' ')
             print(v_transform[i], end=' ')
Line 50: Line 52:
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")


if __name__ == '__main__':
    main()
    
    
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 18:56, 25 April 2023

Cerința[edit | edit source]

Se dă un vector cu n numere naturale. Să se înlocuiască fiecare element cu cel mai mare număr care se poate obține din cifrele lui și să se afișeze elementele astfel obținute în ordine inversă.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.

Date de ieșire[edit | edit source]

Programul afișează pe ecran elementele vectorului, după înlocuire, în ordine inversă, separate prin exact un spațiu.

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 200;
  • elementele vectorului vor fi cuprinse între 1 și 1.000.000

Exemplul 1[edit | edit source]

Intrare
4
170 104 24 2500
Ieșire
Datele de intrare corespund restricțiilor impuse.
5200 42 410 710

Exemplul 2[edit | edit source]

Intrare
0
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 4149 - Inlocuire Max
    # funcția sortează cifrele numărului primit, în ordine descrescătoare, iar mai apoi returnează 
    # numărul astfel obținut

def transform(numar):

   cifre = [int(x) for x in str(numar)]
   cifre.sort(reverse=True)
   return int(.join(map(str, cifre)))

if __name__ == '__main__':

   # citirea numărului de elemente
   n = int(input())
   # citirea listei de elemente
   v = [int(x) for x in input().split()]
   # verificarea restricțiilor de intrare
   if n >= 1 and n <= 200 and all(x > 0 and x <= 1000000 for x in v):
       print("Datele de intrare corespund restricțiilor impuse.")
       # aplicarea functiei de transformare, la fiecare element din listă
       v_transform = [transform(x) for x in v]
       # afișarea valorilor transformate, în ordine inversă
       for i in range(n - 1, -1, -1):
           print(v_transform[i], end=' ')
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>