everycode
everycode copied to clipboard
2014年11月28日 D6
/* 根据传入的参数,返回在此参数之前的所有自然数是3或5的倍数的和。
* e.g. solution(10) //=> 3 + 5 + 6 + 9 = 23
* param1 Number
* return Number
*/
function solution(num){
}
function solution(num){ var res = 0, i;
for (i = 3; i <= num; i++) {
if (i%3 === 0 || i % 5 === 0) {
res += i;
}
}
return res;
}
function solution(num) {
return new Array(num).join("|").split("").reduce(function(arr) {
return (arr.push(arr.length + 1), arr);
}, []).reduce(function(res, n) {
return (n % 3 && n % 5) ? res : res + n;
}, 0);
}
QAQ 沙发没了
表示不会高端的写法。刚才本来还要判断判断参数类型的。谁知道一下就提交了。
function solution(num){
var sum =0;
for(var i=0;i<num;i++){
if(i%3==0 || i%5==0){
sum+=i;
}
}
return sum
}
function solution(num){
var count = 0;
if(var i =0; i < num; i++){
if((i % 3) == 0 || (i % 5) == 0){
count + = i;
}
}
return count;
}
@XadillaX 啊,我看不懂。 : (
@think2011 new Array(长度) 生成的数组不知道什么原因很特殊,虽然里面有长度个 undefined,但是通过 reduce 遍历不出来,所以我只能通过 join 和 split 重新分割数组成所有元素都是空字符串的长度数组。然后下一个 reduce 是生成一个长度为 num - 1 的从 1 开始的数组。最后一个 reduce 遍历这个数组,每逢 3、5 倍数就直接返回当前和,否则返回当前和加上当前数字。