如何解决Scheme编程语言中,要计算以下系列,需要什么递归函数?
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。