编写程序实现集合 { 5, 1, 8, 3, 7, 2, 6 } 的求和,要求:不允许用循环。
解法一
相信很多人看到这题的时候,第一反应就是递归,我也一样,下面是我写的代码(代码写得比较随意):
1 | var sum = function (array) { |
解法二
这种解法最简单,直接上代码吧:
1 | eval([5, 1, 8, 3, 7, 2, 6].join('+')); |
解法三
该题目并没有限制一定要使用哪门语言,所以,我们也可以钻空子,使用ES6提供的方法来写:
1 | [5, 1, 8, 3, 7, 2, 6].reduce(function(x , y) { |
结语
其实这题深究起来还是比较复杂的,各种情况都需要考虑,如果集合很大的话,递归也不合适吧。我个人认为该题目仅限于思维探讨,每个人都有自己的特长。。。