2017-02-18 105 views
-7

给定一个正整数,反转其每个数字的顺序并返回反转的值。即如果输入是12345,我需要返回54321.如何在不使用字符串或整数运算的情况下使用while循环来反转数字?

我不能使用内置的'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 
+1

自己做好功课 –

+0

闻起来有点像家庭作业。 –

+2

...它做了什么?抛出错误?返回意想不到的值?给一个[mcve]。 – jonrsharpe

回答

0

没关系我解决了这个问题。

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 
相关问题