在Scheme中写一个递归函数来计算欧拉数e

时间:2017-05-18 05:08:36

标签: recursion scheme

在Scheme中写入一个递归函数er和一个非递归(基于do-loop)函数ei,它以组件数n为参数,并计算以下和(e的近似值)1 + 1 / 1! + 1/2! + 1/3! + ... + 1 / n!,n> 0

2 个答案:

答案 0 :(得分:1)

我有一个解决方案。我希望这会对你有所帮助!

<div style="width: 7000px;"><button id="scroll">Scroll</button></div>

答案 1 :(得分:0)

您首先要做的是计算阶乘,因为您需要在for循环中使用。然后,在for循环中,您必须调用阶乘函数,请查看如何通过for循环来实现,而不是递归地进行。下面帖子的最后一行是如何测试该函数的信息,该函数应针对阶乘6返回正确的数字。

(define (factorial n)
      (cond
        ((= n 0) 1)
        ((* n (factorial (- n 1)))))) 

    (define (ei n)
      (define sum 0)

      (do ((i 0 (+ 1 i)))
         ((> i n))
         (set! sum (+ sum (/ 1. (factorial i)))))

      sum)

;(ei 6)

相关问题