problem 9
a^2 + b^2 = c^2 かつ a + b + c = 1000 を満たす a, b, c の積 abc を求める問題。
(define (p9) (define square (lambda (x) (* x x))) (define (p9-iter a b) (let1 c (- 1000 a b) (if (= (+ (square a) (square b)) (square c)) (* a b c) (p9-iter (if (= b 999) (+ a 1) a) (if (= b 999) 1 (+ b 1)))))) (p9-iter 1 1)) (print (p9))
ループが冗長な気がしますが、答えが見つかったらループから抜けるので気にしないことにしました。