您的位置:

如何在 Python 中反转一个数字

这是面试中问得最多的编程问题。我们可以使用不同的方法在 Python 中反转整数。

在这里,我们将编写一个程序,它接受输入的数字,并颠倒过来。让我们来了解以下反转整数的方法。

  • 使用 While循环
  • 使用递归

循环时使用 Python 反转一个数字

首先,我们了解这个程序的算法。这将使理解程序逻辑变得容易。一旦你掌握了逻辑,你就可以用任何语言编写程序,而不仅仅是 Python 。

算法


Input Integer:  number
(1) Initialize variable revs_number = 0
(2) Loop while number > 0
     (a) Multiply revs_number by 10 and add remainder of number 
          divide by 10 to revs_number
               revs_number = revs_number*10 + number%10;
     (b) Divide num by 10
(3) Return revs_number

让我们在程序中实现上述算法。

程序


# Ask for enter the number from the use
number = int(input("Enter the integer number: "))

# Initiate value to null
revs_number = 0

# reverse the integer number using the while loop

while (number > 0):
    # Logic
    remainder = number % 10
    revs_number = (revs_number * 10) + remainder
    number = number // 10

# Display the result
print("The reverse number is : {}".format(revs_number))

输出:

Enter the integer number: 12345
The reverse number is: 54321

解释-

让我们一步步了解这个程序。

我们为用户输入初始化了一个号变量,并将变量 revs_number 初始值设为空。

第一次迭代

Reminder = number %10 Reminder = 12345%10 = 5 Reverse = Reverse 10 + Reminder Initial value of revs_number is null Reverse = 0 10 + 5 = 0 + 5 = 5 Number = Number //10 Number = 1234 //10 = 1234 // Now loop will iterate on this number.

第二次迭代

现在数字是 123,revs_number 是 5。while 检查其条件并为下一次迭代执行。

Reminder = Number % 10 Reminder = 1234 % 10 = 4 Reverse = Reverse 10+ Reminder = 5 10 + 4 Reverse = 50 + 4 = 54 Number = Number //10 = 12345 //10 Number = 123

第三次迭代

从第二次迭代开始,“数字”和“反向”的值都已更改为:数字= 123,revs_number = 54

Reminder = Number %10 Reminder = 123%10 = 3 Reverse = Reverse 10+ Reminder = 54 10 + 3 Reverse = 540 + 3 = 543 Number = Number //10 = 123//10 Number = 12

第四次迭代

修改后的数字是 12,revs_number 是 543: Now while 再次执行。

Reminder = Number %10 Reminder = 12 %10 = 2 Reverse = Reverse 10+ Reminder = 543 10 + 2 Reverse = 5430 + 2 = 5432 Number = Number //10 = 12//10 Number = 1

第五次迭代

Reminder = Number %10 Reminder = 1 %1 0 = 1 Reverse = Reverse 10+ Reminder = 5432 10 + 1 Reverse = 54320 + 1 = 54321

而循环被终止,因为如果发现假作为布尔结果。

您可以输入不同的号码并检查结果。

使用递归反转一个数字

让我们理解下面的例子。


num = int(input("Enter the number: "))
revr_num = 0    # initial value is 0\. It will hold the reversed number
def recur_reverse(num):
    global revr_num   # We can use it out of the function
    if (num > 0):
        Reminder = num % 10
        revr_num = (revr_num * 10) + Reminder
        recur_reverse(num // 10)
    return revr_num

revr_num = recur_reverse(num)
print("n Reverse of entered number is = %d" % revr_num)

输出:

Enter the number: 5426
The Reverse of entered number is = 6245

两个程序的逻辑是一样的。一旦你理解了逻辑,靠自己就很容易做到。