0162 - PermCirc

From Bitnami MediaWiki
Revision as of 06:51, 19 March 2023 by Miriam (talk | contribs) (cuprins)

Sursa: PermCirc


Cerinţă

Se dă un vector cu n elemente numere naturale. Determinați toate permutările circulare spre stânga ale vectorului.

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, fiecare pe câte o linie, permutările circulare spre stânga ale vectorului, elementele fiecărei permutări fiind separate printr-un spațiu

Restricţii şi precizări

  • 0 < n < 16
  • elementele vectorului vor fi cuprinse între -1000 și 1000

Exemple

Exemplul 1

Intrare
3
1 2 3
Ieșire
1 2 3 2 3 1 3 1 2

Exemplul 2

Intrare
1231
Ieșire
Numărul de elemente trebuie să fie între 1 și 15.

Rezolvare

<syntaxhighlight lang="python" line="1"> def introducere_vector():

   while True:
       try:
           n = int(input("Introduceți numărul de elemente din vector: "))
           if n < 1 or n > 15:
               print("Numărul de elemente trebuie să fie între 1 și 15.")
           else:
               break
       except ValueError:
           print("Introduceți un număr întreg.")
   while True:
       try:
           vector = list(map(int, input(f"Introduceți {n} elem separate prin spațiu:").split()))
           if len(vector) != n:
               print(f"Introduceți exact {n} elemente.")
           elif any(x < -1000 or x > 1000 for x in vector):
               print("Elementele trebuie să fie între -1000 și 1000.")
           else:
               return vector
       except ValueError:
           print("Introduceți numere întregi.")


def permutari_circulare(vector):

   for i in range(len(vector)):
       permutare = vector[i:] + vector[:i]
       print(*permutare)


if __name__ == '__main__':

   vector = introducere_vector()
   permutari_circulare(vector)

</syntaxhighlight>