pb1a38a600

Pitfalls of factorial computation

Nov 5th, 2026
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. Pitfalls of factorial computation
  2.  
  3. Помимо самого решения, собрал частые ошибки, которые новички допускают в этой задаче.
  4.  
  5. Задача
  6.  
  7. Вычислить факториал натурального числа n: n! = 1 · 2 · … · n, а 0! = 1. Самая первая задача на циклы в учебнике.
  8.  
  9. Решение
  10.  
  11. ``python
  12. def factorial(n: int) -> int:
  13. result = 1
  14. for i in range(2, n + 1):
  15. result *= i
  16. return result
  17.  
  18. print(factorial(6))
  19. `
  20.  
  21. Как это работает
  22.  
  23. Аккумулятор result умножается на числа от 2 до n. Итеративное решение предпочтительнее рекурсивного: оно не переполняет стек вызовов.
  24.  
  25. Пример работы
  26.  
  27. `text
  28. 720
  29. ``
  30.  
  31. Сложность
  32.  
  33. O(n) по времени, O(1) по памяти.
  34.  
  35. Частые ошибки
  36.  
  37. 1. Не обрабатывать крайние случаи. Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
  38. 2. Смешивать типы данных. Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
  39. 3. Писать код без проверки на маленьких примерах. Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.
  40.  
  41. Если решение заработало с первого раза — всё равно сверьтесь со списком ошибок: половина багов рождается при доработках.
  42.  
  43. View Full Gallery → https://go.cbrop.com/prse
  44.  
  45. Related:
  46.  
  47. https://pastebin.com/2zMHvK69
  48. https://rimworld.gallery/m/random/t/16292
  49. https://mycommunitycalendars.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/jewry45944553-ee276d.pdf
  50. https://statics.pancake.vn/web-media-264/e4/9a/7f/05/db2e798a17e2f10bcb0fe8aa02eab2d6c89fa40d66b45e20781d9bf0.pdf
  51. https://privatebin.devol.it/?031752c650ee8d0f#7bwaHWJgGjuYFQtUhPuHEAD8ijsuMxqoSCFDJLphUAgU
  52.  
Advertisement
Add Comment
Please, Sign In to add comment