자연 수의 합계로 쓰여진 n (n은 자연수) 수있는 방법의 수를 반환하는 함수를 작성해야합니다. 예 : 4는 1 + 1 + 1 + 1, 1 + 1 + 2, 2 + 2, 3 + 1 및 4와 같이 쓸 수 있습니다. 모든 옵션의 수를 반환하는 함수를 작성했습니다. 가능성 1 + 1 + 2와 2 + 1 + 1 (및 모든 유사한 경우)이 동일하다는 것을 고려하지 않는다. 그래서 N = 4가 여기에 8 대신 5의를 반환하는 내 함수이다 : 그것은해야 방식으로 작동 할 수 있도록숫자를 계산하는 다른 방법
(define (possibilities n)
(define (loop i)
(cond [(= i n) 1]
[(> i n) 0]
[(+ (possibilities (- n i)) (loop (+ i 1)))]))
(cond [(< n 1) 0]
[#t (loop 1)]))
당신은 내 기능을 수정 좀 도와 주 시겠어요. 고맙습니다.
'cond'를 어떻게 사용하는지 조심하십시오. 마지막 조건은'else'를 쓰는 것이지,'t'가 아니라, 함수의 다섯 번째 행 에서처럼 조건이없는 표현식이 아니어야합니다. –