【问题标题】:Scheme function times called调用方案函数时间
【发布时间】:2013-09-05 17:41:35
【问题描述】:

如果我调用以下函数 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 ))))))

【问题讨论】:

    标签: function scheme


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多