如何将其递归?这是一项计算数字阶乘并确定数字是否为质数的任务,不仅要使用加法和减法,而且还必须采用递归形式,但我不知道该怎么做。
def Prod(x,r):
z=0
while x>0:
z=z+r
x=x-1
return z
def Fat(x):
r=1
while x>1:
r=Prod(x,r)
x=x-1
return r
AND
def Divi(x,d):
c=0
while x>=d:
x=x-d
c=c+1
return x
def Pri(x):
r='N'
d=2
while d<x and r=='N':
if(Divi(x,d)==0):
r='S'
d=d+1
if r=='N':
t='its prime'
else:
t='not prime'
return t
忘了说我也只能使用if ... elif ... else
答案 0 :(得分:0)
递归函数只是调用自身的函数。
def me():
me()
除了上面给出的最简单的递归函数,它永远递归,就像无限循环永远循环一样:
while True:
dab()
那么您如何防止无限循环?您有一个循环条件:
x = 3
while x > 0:
dab()
x -= 1
现在您的循环将退出。那么如何防止递归函数无限循环呢?我们提供了基本情况,其中递归函数不会不调用自身:
def dabr(x):
if x <= 0:
return
dabr(x - 1)
在上面的代码中,当x>1
不再为true时,您退出循环。那是你的基本情况。因此,应将其写为if
语句,以使函数仅在x>1
时才在其自身上重复出现。这是一个提示:
def Fat(x):
if x <= 1:
return ???
return ???
答案 1 :(得分:0)
以递归方式编程时,就是在调用函数本身。
def Prod(a, b):
...
def Fat(r=1):
if r <= 1:
return 1
else:
return Prod(r, Fat(r - 1))
在这种情况下,您正在内部调用函数Fat
。