2017-02-18 104 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 
相關問題