题目要求给出的函数需要完成以下三件事:
- 写一个函数,接受三个数作为参数
- 判断三个数中较大的两个数
- 计算较大两个数的平方和(两个数的平方之和)
我们从后往前,一步步完成这三个任务。
优快云没有Lisp。用Python的标记了
#lang racket
;;SICP 1.3
;;try 1
(define (square x)(* x x))
(define (sum x y)(+(square x)(square y)))
(define (sum-largest x y z)
(cond ((= (min x y z) x) (sum y z))
((= (min x y z) y) (sum x z))
((= (min x y z) z) (sum x y))))
;;try 2
(define (largest-three x y z)
(if (>= x y)
(sum x (if (>= y z) y z))
(sum y (if (>= x z) x z))))
;;testing 1
(sum-largest 2 3 6)
(sum-largest 5 8 12)
;;testing 2
(largest-three 4 8 75)