4149 - Inlocuire Max

From Bitnami MediaWiki
Revision as of 08:47, 22 April 2023 by Adina Timiș (talk | contribs) (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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 inversă, separate prin exact un spațiu.

Restricții și precizări

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

Exemplul 1

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

Exemplul 2

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

Rezolvare

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

  1. 4149 - Inlocuire Max

def transform(numar):

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

def main():

   # citirea numarului 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 lista
       v_transform = [transform(x) for x in v]
       # afisarea valorilor transformate, in ordine inversa
       for i in range(n - 1, -1, -1):
           print(v_transform[i], end=' ')
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

if __name__ == '__main__':

   main()
  

</syntaxhighlight>