这是面试中最常被问到的编程问题之一。我们可以使用不同的方法在Python中反转整数数字。

109.jpg

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

  • 使用while循环
  • 使用递归

使用Python while循环反转数字

首先,我们了解一下这个程序的算法。这将有助于理解程序的逻辑。一旦你理解了逻辑,你可以用任何语言编写程序,不仅仅是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

解释 -

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

我们初始化了一个 number 变量来接收用户输入,将变量 revs_number 的初始值设为null。

第一次迭代

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:现在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

while循环终止,因为它找到了False作为布尔结果。

您可以输入不同的数字并检查结果。

使用递归反转数字

让我们了解以下示例。

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

这两个程序的逻辑相同。一旦你理解了逻辑,就可以自己轻松完成。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程