首页 > 解决方案 > Returning sum of added values from 1 and n only if that value is not divisible by 3 or 5

问题描述

This question has 2 test cases, the inputs of 10 & 15.

function threesFives(num){
   var sum = 0;

   for(let i = 1; num >= i; i++){
      if (i % 3 == 0 || i % 5 == 0){
        sum += i;
      }
   }
   return sum 
}

I don't see why only Test case 2 (input of 15) is passed, but Test Case 1 is not (gives me a sum of 33, which needs to be 22).

标签: javascriptalgorithm

解决方案


You say "Return sum of added values from 1 and n only if that value is not divisible by 3 or 5". So if the number is divisible by 3 or 5, you skip it in the loop. You're doing the opposite right now. You code passes the first case by pure coincidence

Your code should be somewhat like this

function threesFives(num){
   var sum = 0;

   for(let i = 1; num >= i; i++){
      if (i % 3 == 0 || i % 5 == 0){
        continue;
      }
     sum += i;
   }
  
   return sum 
}

console.log(threesFives(10))


推荐阅读