Scheme语言学习---求解三个数中其中两个较大数的和

SCIP中有一个练习题是要求求解三个数中较大数的和:

以我原来的思考是:

进行比较,x 与y ,x与z 。

但是没有从三个数的所出现的可能性上考虑:

只能有下边三种之一的结果:

x + y 

x+z

y+x

判断条件很直白的描述就是:

如果x 》 z 并且 y》 z  , 那么就输出 x + y 作为解。以此类推!

但是如果是4个数呢?

那么就会变成6种可能。

Scheme语言学习---求解三个数中其中两个较大数的和

这样就会很复杂!

发现模式是一样,所以有递归的可能性。

发现如果 用if 的话,没有conn 好,所以写法上也有不同。


下面给出我的解决方案:

Scheme语言学习---求解三个数中其中两个较大数的和

但是呢?这个东西我想不出来。参考 http://blog.****.net/zenny_chen/article/details/5977133点击打开链接

连接中对上边判断进行优化:

1/2:采用cond

Scheme语言学习---求解三个数中其中两个较大数的和

2/2:递归思想的运用

Scheme语言学习---求解三个数中其中两个较大数的和