這是面試中問得最多的編程問題。我們可以使用不同的方法在 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
解釋-
讓我們一步步了解這個程序。
我們為用戶輸入初始化了一個號變數,並將變數 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
兩個程序的邏輯是一樣的。一旦你理解了邏輯,靠自己就很容易做到。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127274.html