2017-02-18 1 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