0

如果我调用以下函数 300 次,expt会调用多少次?我倾向于相信它是 300。另外,每次调用中传递的实际值是多少?他们是-1和n吗?

(define (infinite-series n )
    (if (= n 0)
        1
        (+ (* 4.0 (/ (expt -1 n) (+ 1 (* n 2)))
                  (infinite-series (- n 1 ))))))
4

1 回答 1

0

这是一个递归函数,所以它被调用的次数取决于输入。每个递归递减n,1直到达到0, 并且expt每次使用非零输入调用 this 时调用一次。因此,如果您调用(infinite-series 10)expt将被调用10次数,如果您这样做300expt将被调用总3000次数。如果您infinite-recursion使用不同的输入调用 300 次,则调用总数expt将取决于这些输入。

您是正确的,传递给的实际值expt将是-1and n

于 2013-09-05T18:03:52.313 回答