问题描述
Scheme编程语言中需要什么递归函数来计算以下系列?需要说明
1 ^ 2/2 ^ 1 + 3 ^ 4/4 ^ 3 + 5 ^ 6/6 ^ 5 + 7 ^ 8/8 ^ 7 + 9 ^ 10/10 ^ 9
解决方法
那么,每个术语看起来像什么?它是n ^(n + 1)/(n + 1)^ n。并且您想在达到10时停止(因此,如果n> 10,则停止)。因此,编写一个具有单个参数n的函数,该函数可以是:
- 如果n> 10,则返回0;
- 将n ^(n + 1)/(n + 1)^ n加到在n + 2上调用自身的结果中。
然后,此参数为1的函数将计算所需的内容。向后退可能更容易:
- 如果n
- 在n-2上调用自身的结果中加上n ^(n + 1)/(n + 1)^ n;
然后使用具有参数10的函数。
或者您可以这样做更有趣:
(define s
(λ (l)
((λ (c i a)
(if (> i l)
a
(c c
(+ i 2)
(+ a (/ (expt i (+ i 1))
(expt (+ i 1) i))))))
(λ (c i a)
(if (> i l)
a
(c c
(+ i 2)
(+ a (/ (expt i (+ i 1))
(expt (+ i 1) i))))))
1 0)))
但是我不推荐。
,:category_id