Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我调用以下函数 300 次,expt会调用多少次?我倾向于相信它是 300。另外,每次调用中传递的实际值是多少?他们是-1和n吗?
expt
(define (infinite-series n ) (if (= n 0) 1 (+ (* 4.0 (/ (expt -1 n) (+ 1 (* n 2))) (infinite-series (- n 1 ))))))
这是一个递归函数,所以它被调用的次数取决于输入。每个递归递减n,1直到达到0, 并且expt每次使用非零输入调用 this 时调用一次。因此,如果您调用(infinite-series 10),expt将被调用10次数,如果您这样做300,expt将被调用总3000次数。如果您infinite-recursion使用不同的输入调用 300 次,则调用总数expt将取决于这些输入。
n
1
0
(infinite-series 10)
10
300
3000
infinite-recursion
您是正确的,传递给的实际值expt将是-1and n。
-1