Separate an integer into two (nearly) equal parts

后端 未结 11 919
囚心锁ツ
囚心锁ツ 2020-12-06 04:09

I need to separate an integer into two numbers. Something like dividing by two but I only want integer components as a result, such as:

6 = 3 and 3
7 = 4 and         


        
11条回答
  •  时光说笑
    2020-12-06 04:36

    Another way to do this is using bitwise operators. It doesn't work for very big numbers

    function splitter(number){
      part1 = (number>>1) + (number&1);
      part2 = number>>1;
      console.log(number + ":", part1 + "+" + part2);
    }
    
    splitter(7);
    splitter(6);
    splitter(2**30+1); // Breaks for values greater than 2**31
    splitter(2**31+1); 

提交回复
热议问题