[英]In Dr. Racket, how would I write a racket function which produces true if every integer in a list is even and false otherwise?
[英]In Dr. Racket, how to write a Tetration function
我將如何在 Dr. Racket 中編寫 Tetration 函數。 到目前為止,這是我的代碼:
(define (awesome-tetration k p)
(cond
[(= p 1) (expt k p)]
[else (expt (awesome-tetration k (sub1 p)) (expt k p))]))
如果我輸入
(awesome-tetration 2 3)
我想要的輸出是 2^2^2= 16 但是,我得到:
4294967296
為什么會發生這種情況。 我能得到一些關於我的代碼有什么問題的指示嗎? 謝謝。
遞歸步驟是正確的,您調用expt
次數比需要的多。 解決方案更簡單,您只需要這樣做:
(define (awesome-tetration k p)
(cond
[(= p 1) (expt k p)]
[else (expt k (awesome-tetration k (sub1 p)))]))
現在它的工作原理:
(awesome-tetration 2 3)
=> 16
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.