Не удается найти факториал числа
Учу Python. Решаю задачу, в которой нужно позволить пользователю ввести неотрицательное целое значение, затем применить цикл для вычисления факториала этого числа и вывести его на экран. Но на последней строке срабатывает SyntaxError.
Код:
num = int(input('Введите неотрицательное целое число: '))
while num <= 0 or num % 1 != 0:
print('Ошибка')
num = int(input('Введите неотрицательное целое число: '))
for x in range(num):
fact = num * (num - (num- (x+1))
print(fact)
Лог:
File "<ipython-input-7-6d70e7b9ea80>", line 7
print(fact)
^
SyntaxError: invalid syntax
Ответы (4 шт):
Автор решения: Вадим Александру
→ Ссылка
num = int(input('Введите неотрицательное целое число: '))
while num <= 0 or num % 1 != 0:
print('Ошибка')
num = int(input('Введите неотрицательное целое число: '))
for x in range(num):
fact = num * (num - (num - x)) # скобку забыли :D
print(fact)
А так то не понимаю зачем вы x + 1 в выражении используете
Автор решения: Руслан Дегтярев
→ Ссылка
Понял ошибки:
забыл скобку
формулу факториала вобще не нужно было использовать. Все сделал через введение накопителя с изначальным значением 1.0:
num = int(input('Введите неотрицательное целое число: ')) while num <= 0 or num % 1 != 0: print('Ошибка') num = int(input('Введите неотрицательное целое число: ')) total = 1.0 for x in range(num): total *= (x+1) print(total)
Автор решения: n1tr0xs
→ Ссылка
num = int(input('Введите неотрицательное целое число: '))
while num < 0:
print('Ошибка')
num = int(input('Введите неотрицательное целое число: '))
fact = 1
for x in range(2, num+1):
fact *= x
print(fact)
Автор решения: Иван Русанов
→ Ссылка
Тоже начал учить Python. У меня такая же задача. Получилось вот так.
def factorial(charge):
asd = []
i = 0
for i in range(2, charge + 1):
for j in range(1, i):
i *= j
j += 1
asd.append(i)
print(charge, '!=', i)
print(charge, '!=', asd)
return asd
chislo = int(input('Введите неотрицательное целое число: '))
if chislo <= 0 or chislo % 1 != 0:
print('Ошибка!')
else:
factorial(chislo)