0162 - PermCirc
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și1000
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>