291
Infallible Code (feddit.uk)
you are viewing a single comment's thread
view the rest of the comments
[-] sus@programming.dev 86 points 3 weeks ago* (last edited 3 weeks ago)

After working at blizzard for 51 years, I finally found an elegant solution by using the power of recursion

private bool IsEven(int number){
  if (number > 1) return IsEven(number - 2);
  if (number == 0) return true;
  if (number == 1) return false;
}
[-] elvith@feddit.org 39 points 3 weeks ago
[-] lambda@programming.dev 14 points 3 weeks ago

Now see, you need the other method. IsNegativeEven()

[-] sus@programming.dev 9 points 2 weeks ago

We can avoid expensive branches (gasp) by using some bitwise arithmetic to achieve the so-called "absolute value", an advanced hacker technique I learnt at Blizzard. Also unlike c, c# is not enlightened enough to understand that my code is perfect so it complains about "not all code paths returning a value".

private bool IsEven(int number)
{
    number *= 1 - 2*(int)(((uint)number & 2147483648) >> 31);
    if (number > 1) return IsEven(number - 2);
    if (number == 0) return true;
    if (number == 1) return false;
    throw new Exception();
}
[-] UnknownSoul@programming.dev 2 points 2 weeks ago

Nice, now we just need another function to find odd numbers, cause not all numbers are even you know.

[-] Ebber@lemmings.world 12 points 3 weeks ago

I removed the tail recursion for you:

private book IsEven(int number) {
    if(number > 1) return IsEven(number - 2) == true;
    if(number == 0) return true; 
    if(number == 2) return false;
}
[-] Ferk@programming.dev 3 points 2 weeks ago

What'd be the result for IsEven(1)?

[-] Ebber@lemmings.world 5 points 2 weeks ago

Stack overflow

this post was submitted on 15 Jul 2025
291 points (100.0% liked)

Programmer Humor

25495 readers
1772 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS