我尝试使用递归函数Power in Racket作为输入二 数字x和y并返回x y ,其中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))
该计划如何接受负面力量?
答案 0 :(得分:2)
我们可以使用这条规则:
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)))