Search code examples
javascriptalgorithmmathnumbers

Write a function that returns the square of a number without using *,+ or pow


The task is to write a function that takes n as an input where n is a number (from -32768 to 32768) and returns the square of that number. Simple task except for the fact that we cannot use any operators such as *,+ or even use any Math. functions such as pow. eval is not allowed as well. Even more challenging is that we must keep the character code count less than 39 characters.

I absolutely cannot think of a way to get the square of a number without using the + or *. And even worse, to keep the character count less, it's impossible for me.

Codes like this won't work because: I used the plus sign and the character count is more than 60.

function sq(n){
   var res=n;
   for(i=1;i<n;i++)
   res+=n;
return res;
}

If n is a decimal, we are expected to return the nearest whole number as the result. Thank you for reading all of this!

Edit: My problem has been solved. Thank you to everyone who has tried to help me with their codes as it helped me gain a new aspect of solving each problems. Thank you very much again!


Solution

  • You could divide n by 1 / n

    For rounding off without using Math.round, I have used this:

    s=n=>(r=>(r-~~r<.5?0:1)- -~~r)(n/(1/n))
    
    console.log(s(5));
    console.log(s(4.4));
    console.log(s(-4.44));

    This has 39 characters.