Python program to right rotate n-numbers by 1

Given a number n. The task is to print n-integers n-times (starting from 1) and right rotate the integers by after each iteration.
Examples:
Input: 6 Output : 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5 Input : 3 Output : 1 2 3 2 3 1 3 1 2
Method 1:
Below is the implementation.
Python3
def print_pattern(n): for i in range(1, n+1, 1): for j in range(1, n+1, 1): # check that if index i is # equal to j if i == j: print(j, end=" ") # if index i is less than j if i <= j: for k in range(j+1, n+1, 1): print(k, end=" ") for p in range(1, j, 1): print(p, end=" ") # print new line print()# Driver's codeprint_pattern(3) |
Output
1 2 3 2 3 1 3 1 2
Method 2: Using pop(),append() and loops
Python3
def print_pattern(n): x = [] for i in range(1, n+1): x.append(i) print(i, end=" ") print() j = 0 while(j < n-1): a = x[0] x.pop(0) x.append(a) for k in x: print(k, end=" ") print() j += 1print_pattern(6) |
Output
1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5
Using modulus operator: In this approach, we are using the modulus operator and adding i to the loop variable j to get the current number in each iteration. The time complexity of this approach is O(n^2) as it requires two nested loops. The space complexity is O(1) as we are only using a few variables and not using any extra data structures.
Python3
def print_pattern(n): for i in range(n): for j in range(n): print((j+i)%n+1, end=" ") print()# Driver's codeprint_pattern(6)#This code is contributed by Edula Vinay Kumar Reddy |
Output
1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5



