형성 : 다음내가 DrRacket을 사용하고하고 구조체로 정의 DrRacket (또는 제도)에서이 형식의 나무 그래서
(define-struct thing (a b))
을, 내가 가진이 형식의 예 나무 :
(define v (make-thing
(make-thing (make-thing 1 2)
(make-thing 3 4))
(make-thing (make-thing 5 6)
(make-thing 7 8))))
2의 거듭 제곱 인 양수가 아닌 함수를 작성해야합니다 (1,2,4,8,16 ...과 같음). 숫자 1을 출력합니다 (n = 1 인 경우).) 또는 위와 같은 형식으로 '물건'을 만듭니다.
은 지금까지 나는 많은 방법을 시도했지만 나도 같은 일을 그만 둘 : 내가 제대로 변수를 증가하는 방법을 알아낼 수 없습니다
(make-thing (make-thing (make-thing 1 1)
(make-thing 1 1))
(make-thing (make-thing 1 1)
(make-thing 1 1))))
- 나는 방법을 알아낼 수있었습니다 make-thing
의 필요한 수를 적용
(define (helper pow current)
(cond
((= pow 0) 1)
(else (make-thing
(helper (- pow 1) current)
(helper (- pow 1) (- current 1))))))
(define current 1)
(define (build-thing-or-number n)
(cond
((= n 1) 1)
(else (make-thing
(helper (- (log n 2) 1) current)
(helper (- (log n 2) 1) (add1 current))))))
설명 주셔서 감사합니다! 이것은 잘 동작했다. – abcd