# 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 += 1  print_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

Previous
Next