Open In App
Related Articles

Python program to right rotate n-numbers by 1

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

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 code
print_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 code
print_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 


Last Updated : 07 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads