如何在没有字符串或整数操作的情况下使用 while 循环反转数字?
How to reverse a number using a while loop without string or integer operations?
给定一个正整数,将其每个数字的顺序颠倒,return 颠倒后的值。即如果输入是 12345,我需要 return 54321.
我无法使用内置的 'int' 或 'str' 函数或在此函数中进行任何字符串操作。
我需要使用循环来解决这个问题。
到目前为止我试过这个:
import math
def reverse_number(n):
sum = 0
n1 = n
while n1 > 0:
digit = round(math.log10(n1), 0) + 1
sum += math.floor((n1 % 10) * (10 ** (digit - 1)))
n1 = n1 // 10
sum = math.floor(round(sum, 0))
return sum
没关系我解决了。
import math
def reverse_number(n):
sum = 0
n1 = n
while n1 > 0:
digit = math.floor(math.log10(n1)) // 1
extracted = math.floor(n1 % 10) // 1
sum += math.floor(extracted * (10 ** digit)) // 1
n1 = n1 // 10
sum = math.floor(round(sum, 0))
return sum
给定一个正整数,将其每个数字的顺序颠倒,return 颠倒后的值。即如果输入是 12345,我需要 return 54321.
我无法使用内置的 'int' 或 'str' 函数或在此函数中进行任何字符串操作。
我需要使用循环来解决这个问题。
到目前为止我试过这个:
import math
def reverse_number(n):
sum = 0
n1 = n
while n1 > 0:
digit = round(math.log10(n1), 0) + 1
sum += math.floor((n1 % 10) * (10 ** (digit - 1)))
n1 = n1 // 10
sum = math.floor(round(sum, 0))
return sum
没关系我解决了。
import math
def reverse_number(n):
sum = 0
n1 = n
while n1 > 0:
digit = math.floor(math.log10(n1)) // 1
extracted = math.floor(n1 % 10) // 1
sum += math.floor(extracted * (10 ** digit)) // 1
n1 = n1 // 10
sum = math.floor(round(sum, 0))
return sum