在球拍

时间:2015-04-30 09:53:56

标签: recursion functional-programming racket

我尝试使用递归函数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))

该计划如何接受负面力量?

1 个答案:

答案 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)))