给定一个base和一个exponent参数,我想创建自己的expt函数

时间:2017-11-13 21:50:36

标签: list recursion racket

我试图创造一个"慢"球拍中的指数函数,它接受一个基数和一个指数,n。我想创建这个函数并将基数乘以n次以获得我的答案。我认为创建列表是获得答案的最佳方式,但我遇到了一些问题:

(define (slow-expt base n)
  (local [(define listn (make-list n base))]
    (cons (* (- base 1) (first listn))
          (slow-expt base (rest listn)))))

我的错误是*期望第二个参数是一个数字,但应该给出它(第一个listn)。有任何建议吗?

1 个答案:

答案 0 :(得分:0)

列表与此问题无关,只需将base单独乘以n次:

(define (slow-expt base n)
  (if (= n 0)
      1
      (* base (slow-expt base (- n 1)))))