js编程:数组求和
2017-03-29 19:59
183 查看
数组求和
链接:https://www.nowcoder.com/questionTerminal/cc3ce199461c4c4cb8f63db61d7eba30
来源:牛客网
计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
输入例子:
sum([ 1, 2, 3, 4 ])
输出例子:
10
很多人都说这不是很简单吗,直接for循环就行了
但是对于我,在牛客的在线编程上写的,还真就不是那么简单了。像在这样的平台上写代码一定要十分的注意,要考虑很多细节问题。
一开始我是这么写的
看看好像是对的,但是系统就是不给我通过,说不是所有用例都能通过。是不是很尴尬,后面想想,是不是要考虑数组长度为0时,为1时呢,好像是,所以正确代码是这样的
另外几种解法:
递归
链接:https://www.nowcoder.com/questionTerminal/cc3ce199461c4c4cb8f63db61d7eba30
来源:牛客网
计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
输入例子:
sum([ 1, 2, 3, 4 ])
输出例子:
10
很多人都说这不是很简单吗,直接for循环就行了
但是对于我,在牛客的在线编程上写的,还真就不是那么简单了。像在这样的平台上写代码一定要十分的注意,要考虑很多细节问题。
一开始我是这么写的
function sum(arr) { var s = 0; for (var i=0;i<arr.length;i++) { s+= arr[i]; return s; }
看看好像是对的,但是系统就是不给我通过,说不是所有用例都能通过。是不是很尴尬,后面想想,是不是要考虑数组长度为0时,为1时呢,好像是,所以正确代码是这样的
function sum(arr) { var s=0; if(arr.length==0){ return 0; } else if(arr.length==1){ return arr[0]; } else{ for(var i=0;i<arr.length;i++){ s+=arr[i]; } return s; } }
另外几种解法:
递归
/* slice方法:从已有的数组中返回选定的元素。 slice(start,end);不指定end,就是从start开始,到数组结束为止 * function sum(arr){ //还是要判断数组的长度 if(arr.length==0){ return 0; } else if(arr.length==1){ return arr[0]; }else{ return arr[0]+sum(arr.slice(1)); } }
相关文章推荐
- JS编程训练 | 题2:数组求和
- 并行编程之跨平台使用SSE、AVX指令集心得——以单精度浮点数组求和为例(支持vc、gcc,兼容Windows、Linux、Mac)
- 并行编程之跨平台使用SSE、AVX指令集心得——以单精度浮点数组求和为例(支持vc、gcc,兼容Windows、Linux、Mac)
- 2.使用js实现数组求和
- 趣味编程:不使用循环对数组求和
- JS编程训练 | 题7:数组前删除第一个元素
- JS编程训练 | 题6:数组前插入元素
- 编程基本功之数组求和
- js数组遍历求和
- 分享JS数组求和与求最大值的方法
- JS编程训练 | 题8:数组合并
- 并行编程之跨平台使用SSE、AVX指令集心得——以单精度浮点数组求和为例(支持vc、gcc,兼容Windows、Linux、Mac)
- js数组求和
- js编程:移除数组中和指定的值相等的元素
- JS编程——合并两个有序数组
- JS编程训练 | 题4:数组中添加元素
- js数组求和
- js数组求和、最大、最小值
- JS 数组求和的5种方法(解题报告)
- Web编程前端之5:js数组的操作