Форум сайта python.su
Найти произведение всех целых чисел в диапазоне от a до b. Использовать цикл while, а не for
Офлайн
Гораздо интересней, если вообще без циклов:
def factorial(a): if a == 0: return 1 return a * factorial(a - 1) if a > 0 else a * factorial(a + 1) factorial(b) / factorial(a - 1)
Отредактировано scidam (Окт. 27, 2016 02:05:50)
Офлайн
scidamФакториал есть в модуле math. Но и факториал здесь не нужен, так как слишком затратен по времени, если расстояние от a до b большое.def factorial(a):
Офлайн
py.user.next
Точно, можно гораздо проще (и также с рекурсией):
def ab(a, b): if a == b: return b return a * ab(a + 1, b) print ab(5, 6)
Офлайн
scidamда только мне нужно все это сделать с циклом while и без использования функций)))
py.user.nextТочно, можно гораздо проще (и также с рекурсией):
Офлайн
scidamВыполни
Рекурсии, правда, медленные но не важно…
ab(1, 1000)
Отредактировано py.user.next (Окт. 27, 2016 15:56:48)
Офлайн