workshophub563992

Solving and testing the sum of digits

Nov 8th, 2026
1
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. Solving and testing the sum of digits
  2.  
  3. Решение без тестов быстро ломается, поэтому добавим к задаче простые проверки.
  4.  
  5. Задача
  6.  
  7. Найти сумму цифр натурального числа n, например для 1234 ответ 1 + 2 + 3 + 4 = 10.
  8.  
  9. Решение
  10.  
  11. ``python
  12. def digit_sum(n: int) -> int:
  13. total = 0
  14. while n > 0:
  15. total += n % 10 # берём последнюю цифру
  16. n //= 10 # отбрасываем её
  17. return total
  18.  
  19. print(digit_sum(1234))
  20. `
  21.  
  22. Как это работает
  23.  
  24. Операция n % 10 выделяет последнюю цифру, а целочисленное деление n //= 10 убирает её. Цикл продолжается, пока число не станет нулём.
  25.  
  26. Пример работы
  27.  
  28. `text
  29. 10
  30. `
  31.  
  32. Сложность
  33.  
  34. O(log n) по времени — по числу цифр, O(1) по памяти.
  35.  
  36. Проверка тестами
  37.  
  38. Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.
  39.  
  40. `python
  41. assert is_valid(True) is not None # базовая проверка вызова
  42. assert is_valid(False) is not None # и второй случай
  43. ``
  44.  
  45. Такой минимум уже защищает от случайной ошибки при правках кода.
  46.  
  47. Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.
  48.  
  49. View Full Gallery → https://go.cbrop.com/prse
  50.  
  51. Related:
  52.  
  53. https://rentry.org/glow-in-the-dark-wallpapers-226809
  54. https://posts.workshop-hub.workers.dev/caesar-razbor
  55. https://pastebin.com/mkXAdPqm
  56. https://discuss.tchncs.de/post/65443460
  57. https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/merge-sort-razbor-mw7991lz.md
  58.  
Advertisement
Add Comment
Please, Sign In to add comment