Recursion 在球拍中启用负功率的功能

Recursion 在球拍中启用负功率的功能,recursion,functional-programming,racket,Recursion,Functional Programming,Racket,我试图在Racket中使用一个递归函数Power,该函数以2作为输入 对x和y进行编号并返回xy,其中x和y可以是正的,也可以是正的 没有 ;a power b (printf "Enter value of X: ") (define a (read)) (printf "Enter value of n: ") (define b(read)) (define (power a b) (if (= b 0) 1 (* a (power a (- b 1 ))))) (define (Disp

我试图在Racket中使用一个递归函数Power,该函数以2作为输入 对x和y进行编号并返回xy,其中x和y可以是正的,也可以是正的 没有

;a power b
(printf "Enter value of X: ")
(define a (read))
(printf "Enter value of n: ")
(define b(read))
(define (power a b) (if (= b 0) 1 (* a (power a (- b 1 )))))
(define (DisplayResult a messg b mess res) (display a) (display messg)(display b) (display mess) (display res))
(DisplayResult a " power " b " is " (power a b))
程序如何接受负功率

我们可以使用这个规则:

a^-b = 1 / a^b
或者如果我们插入-b作为b:

a^b = 1 / a^-b
您的
power
处理b为正的情况,因此我们可以重用它 要定义处理负片情况的
扩展电源

(define (extended-power a b)
  (if (negative? b)
      (/ 1 (power a (- b)))
      (power a b)))