0162 - PermCirc: Difference between revisions

From Bitnami MediaWiki
Miriam (talk | contribs)
tot exercitiul
Tag: visualeditor
 
Miriam (talk | contribs)
m cuprins
Tag: visualeditor
Line 2: Line 2:
Sursa: [https://www.pbinfo.ro/probleme/162/permcirc PermCirc]
Sursa: [https://www.pbinfo.ro/probleme/162/permcirc PermCirc]
----
----
==Cuprins==
*[[0415 - unique#Cerin%C5%A3a|1Cerinţă]]
*[[0415 - unique#Date%20de%20intrare|2Date de intrare]]
*[[0415 - unique#Date de ie%C8%99ire|3Date de ieșire]]
*[[0415 - unique#Restric%C5%A3ii %C5%9Fi preciz%C4%83ri|4Restricţii şi precizări]]
*[[0415 - unique#Exemple|5Exemple]]
**[[0415 - unique#Exemplul%201|5.1Exemplul 1]]
**[[0415 - unique#Exemplul%202|5.2Exemplul 2]]
*[[0415 - unique#Rezolvare|6Rezolvare]]
==Cerinţă==
==Cerinţă==
Se dă un vector cu <code>n</code> elemente numere naturale. Determinați toate permutările circulare spre stânga ale vectorului.
Se dă un vector cu <code>n</code> elemente numere naturale. Determinați toate permutările circulare spre stânga ale vectorului.

Revision as of 06:51, 19 March 2023

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>