【发布时间】:2019-02-09 18:38:35
【问题描述】:
我正在尝试创建一个递归函数,它接收 n 个数字的列表。这个函数应该做的是取 n 个数字的乘积,然后取 n 个根。我得到了 n 个数字的乘积,但不知道如何实现第 n 个根。
我尝试做的是实现 expt x y 函数,但无法在 recursion 中正确使用它。此外,在尝试实现此功能时,我也不知道如何将 expt 功能提供给第 n 个根。 (y=1/n)。
(define (nth-root-of-product-of-numbers lst)
(cond [(empty? lst) 1]
[else (* (first lst) (nth-root-of-product-of-numbers (rest lst)))]))
因此,上面的代码正确地生成了 n 数列表中的乘积,但是它不能补偿 n 次根问题。示例输入为:
(check-within
(nth-root-of-product-of-numbers (cons 9 (cons 14 (cons 2 empty)))) 6.316359598 0.0001)
【问题讨论】:
-
请使用示例输入和预期输出编辑问题。
-
好的。我已经在示例输入和预期输出中进行了编辑。
标签: recursion recursion scheme racket