Добавление цифр в число (требуется пояснение кода)

Я встречал этот сегмент кода в другом месте. Он просто добавляет все цифры в данном номере:

def sumDigits(n):
    sum = 0
    while n > 0:
        sum += n % 10
        n //= 10
    return sum

Проблема в том, что я не понимаю логику. В частности, я не понимаю точно, что делает цикл:

   while n > 0:
        sum += n % 10  # Why n % 10?
        n //= 10       # Again, not sure why we divide the number by 10

Может ли кто-нибудь дать мне пример того, как работает алгоритм?

Спасибо!

1 ответ

Решение

Вы должны понимать 2 вещи:

  1. n % 10 дать вам самую правую цифру числа. Например: 123 % 10 = 3
  2. n // 10 удалить самую правую цифру числа. Например: 123 // 10 = 12

так что если вы повторите этот процесс, вы получите желаемый результат

Другие вопросы по тегам