📜  Python3程序生成数字的所有旋转

📅  最后修改于: 2022-05-13 01:54:44.774000             🧑  作者: Mango

Python3程序生成数字的所有旋转

给定一个整数n ,任务是生成所有可能的左移数字。左移数是当该数的所有数字向左移动一个位置并且第一个位置的数字移动到最后一个位置时生成的数字。
例子:

方法:

  • 假设n = 123
  • n10相乘,即n = n * 10 = 1230
  • 将第一个数字添加到结果数字,即1230 + 1 = 1231
  • 从结果数字中减去(第一位)* 10 k ,其中k是原始数字中的位数(在本例中,k = 3)。
  • 1231 – 1000 = 231是原始数字的左移数字。

下面是上述方法的实现:

Python3
# Python3 implementation of the approach
  
# function to return the count of digit of n
def numberofDigits(n):
    cnt = 0
    while n > 0:
        cnt += 1
        n //= 10
    return cnt
      
# function to print the left shift numbers
def cal(num):
    digit = numberofDigits(num)
    powTen = pow(10, digit - 1)
      
    for i in range(digit - 1):
          
        firstDigit = num // powTen
          
        # formula to calculate left shift 
        # from previous number
        left = (num * 10 + firstDigit - 
               (firstDigit * powTen * 10))
        print(left, end = " ")
          
        # Update the original number
        num = left
          
# Driver code
num = 1445
cal(num)
  
# This code is contributed
# by Mohit Kumar


输出:
4451 4514 5144

有关详细信息,请参阅有关生成数字的所有旋转的完整文章!