0

can anyone tell me which piece of code is not working as intended and an explanation as to why.

Trying to take any given two integers a and b, which can be positive or negative, find the sum of all the integers between and including them and return it. If the two numbers are equal return a or b.

Note: a and b are not ordered!

More can be found about the question in the link below.

https://www.codewars.com/kata/55f2b110f61eb01779000053/train/javascript


function getSum( a,b ){
  
   let count = 0;
     
    if(a>b){  
      let greaterNum = a;
      let lesserNum = b;
      count = lesserNum;
        for(lesserNum; lesserNum<greaterNum; lesserNum++){
        count += 1;
      }
       return count;
      
    }else if(a<b){
      let greaterNum = b; 
      let lesserNum = a;
      count = lesserNum;
      for(lesserNum; lesserNum<greaterNum; lesserNum++){
        count += 1;
      }
        return count;
    }else if (a==b){
      return a;
    }
  
    
  
  
}

  
  

1 Answer 1

1

find the sum of all the integers between and including them and return it

You're doing:

count += 1;

ie, you're counting the number of numbers - not summing them.

You're also massively overcomplicating it:

function getSum( a,b ){
   const start = Math.min(a,b);
   const end = Math.max(a,b);
   let sum = 0;
   for(let x = start;x<=end;x++)
      sum += x;
   return sum;  
}

console.log(getSum(0,10))
console.log(getSum(10,10))
console.log(getSum(-10,10))
console.log(getSum(10,-10))

Sign up to request clarification or add additional context in comments.

1 Comment

Perfect thanks - I overlooked the count issue. Also the math.min/max was the function I needed! Big help

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.