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

function enabling negative power in racket

我正在尝试在 Racket 中使用递归函数 Power,它将两个作为输入 数字 x 和 y 和 returns 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 为正的情况,因此我们可以重用它 定义处理负面情况的 extended-power

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