10.[多选]如下函数中,属于递归函数的 是( def f(n): return (n*(n-1) def f(n): return (n*(n-1) if n%2==0 else n/(n-1)) def f(n): return (1 if n<l else r (n-1)) def f(n): return (1 if n==l or n==2 else f(n-1)+f(n-2)) n+f
时间: 2023-09-01 18:12:21 浏览: 59
属于递归函数的函数是:
- def f(n): return (1 if n<l else r (n-1))
- def f(n): return (1 if n==l or n==2 else f(n-1)+f(n-2))
两个函数都是通过调用函数本身来实现的递归函数。其中,第一个函数存在语法错误,应该是 `def f(n): return (1 if n<l else f(n-1))`。
相关问题
题目:下面的程序是求1!+3!+5!+…••••+n!的和。 注意:除要求填空的位置之外,请勿改动程序中的其他内容。 def jie (n):####提示:这个西数是求口的阶乘,使用递归方法 ifn==1: return 1 else: #**********SPACE ********** return? def sum (n):####提是示:这个函数是求奇数个阶乘的和 if n==1: #**********SPACE********** return jie((?]) else: #**********SPACE********** return jie (n)+sum( (?] ) en=int (input (“请输入一个奇数正整数n:〞)) 并**********SPACE ********** print(”公式的和为: ",【?】)
下面是代码的完整实现,包括填空部分:
```
def jie(n):
if n == 1:
return 1
else:
return n * jie(n-1)
def sum(n):
if n == 1:
return jie(1)
else:
return jie(n) + sum(n-2)
n = int(input("请输入一个奇数正整数n:"))
print("公式的和为:", sum(n))
```
在代码中,`jie(n)` 函数是用来求 n 的阶乘,使用了递归的方法。`sum(n)` 函数是用来求奇数个阶乘的和,也使用了递归的方法。在 `sum(n)` 函数中,当输入值为 1 时,直接返回 1 的阶乘;否则,返回当前值 n 的阶乘加上前一个奇数的阶乘之和,即 `jie(n) + sum(n-2)`。
最后,在主程序中,读取用户输入的奇数正整数 n,并调用 `sum(n)` 函数来计算公式的和。
# -*- coding: UTF-8 -*- # 计算阶乘 def refunc(n): i = 1 if n > 1: # 递归的结束判断 i = n #**********begin1********** n = n * ______(n-1) # 递推 #**********end1********** print ("%d! =" %
n, i) return n # 在 begin1 和 end1 处,应该填写 n 和一个调用自身的递归函数,代码如下: # -*- coding: UTF-8 -*- # 计算阶乘 def refunc(n): i = 1 if n > 1: # 递归的结束判断 i = n n = n * refunc(n-1) # 递推 print ("%d! =" % n, i) return n
阅读全文