递归检测数字是否为阶乘
Detect if number is factorial recursively
需要创建一个函数来评估特定数字是否为阶乘。
为此,我构建了以下内容,并且正在运行
def is_factorial(n):
i = f = 1
while f < n:
i += 1
f *= i
return f == n
然而,现在我需要让它递归,但我正在努力。
到目前为止,我已经设法做到了以下几点
def isFactorial(m):
def factorial(x):
if x == 0:
return 1
else:
return x * factorial(x - 1)
if m == 1:
return True
elif m == 720:
return True
else:
factorialnumbers = []
感谢任何帮助。
编辑:抱歉,我忘了指定该函数应该只输入一个整数。
def is_factorial(n, i=1):
n = n/i
if n == 1:
return True
if n < 1:
return False
i += 1
return is_factorial(n, i)
print(is_factorial(24))
你可以做到
def isfact(m,n):
def fact(n):
if n==1 or n==0:
return 1
else:
return n*fact(n-1)
if fact(n) == m:
return True
else:
return False
需要创建一个函数来评估特定数字是否为阶乘。
为此,我构建了以下内容,并且正在运行
def is_factorial(n):
i = f = 1
while f < n:
i += 1
f *= i
return f == n
然而,现在我需要让它递归,但我正在努力。
到目前为止,我已经设法做到了以下几点
def isFactorial(m):
def factorial(x):
if x == 0:
return 1
else:
return x * factorial(x - 1)
if m == 1:
return True
elif m == 720:
return True
else:
factorialnumbers = []
感谢任何帮助。
编辑:抱歉,我忘了指定该函数应该只输入一个整数。
def is_factorial(n, i=1):
n = n/i
if n == 1:
return True
if n < 1:
return False
i += 1
return is_factorial(n, i)
print(is_factorial(24))
你可以做到
def isfact(m,n):
def fact(n):
if n==1 or n==0:
return 1
else:
return n*fact(n-1)
if fact(n) == m:
return True
else:
return False