you might be able to do it with a bitwise op? My track record tonight is not great so I’m not going to comment. Have a look at @ImplyingImplactions comment for a loopless solution
Without using the modulo operator you’d essentially have to reimplement it. Divide the number by 2 and round down. Multiply that by 2 and then subtract it from the original number.
isEven(10) results in 10-10==0 (true) whereas isEven(13) results in 13-12==0 (false).
I’m sorry, but even without knowing about the mod operator, this is inefficient and over engineered. Why have a loop at all?
fun isEven(n: Int){ return n == abs(n) }
no loop required…
having said that, I can totally see how that was missed in a high pressure interview. I hate interviews like that!
edit: Ha ha… isEven…not isPositive… I’m tired. ignore me!
Because the abs(3) == 3 is true and that isn’t even.
An even number of flips would be true and an odd number of flips would be false which works out.
I was thinking a bitwise & or converting it to a string and testing if the right most character is 0, 2, 4, 6, 8 would be panic mode solutions too.
you might be able to do it with a bitwise op? My track record tonight is not great so I’m not going to comment. Have a look at @ImplyingImplactions comment for a loopless solution
Bitwise and with 0x1. If result is 0, it’s even. Least significant bit is always 1 for odd numbers.
That would be isPositive.
Without using the modulo operator you’d essentially have to reimplement it. Divide the number by 2 and round down. Multiply that by 2 and then subtract it from the original number.
isEven(10) results in 10-10==0 (true) whereas isEven(13) results in 13-12==0 (false).
function isEven(n){ n = Math.abs(n) return (n - (Math.floor(n/2) * 2)) == 0 }
Minor simplification: this works even without taking absolute value first of you use fix instead of floor.
Edit: I don’t know if fix is in the stock math library on second thought…
Yep! I’m wrong. Pretty embarrassing!
That’s a nice solution though! Gonna have to try and remember that one!
Lol I think the interview pressure got to you.
Ha ha ha, yup… whoops!
I’m not following.
n == abs(n)
only tells you if it’s positive.yes, I’m being a dumb tonight. I’m completely wrong
Haha, s’all good, yo.