this post was submitted on 07 Dec 2023
187 points (90.8% liked)

Programming Horror

1849 readers
1 users here now

Welcome to Programming Horror!

This is a place to share strange or terrible code you come across.

For more general memes about programming there's also Programmer Humor.

Looking for mods. If youre interested in moderating the community feel free to dm @[email protected]

Rules

Credits

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 9 points 10 months ago* (last edited 10 months ago) (7 children)

modulo

pseudocode:

if number % 2 == 0
  return "number is even" (is_num_even = 1 or true)
else
  return "number is odd" (is_num_even = 0 or false)

plus you'd want an input validation beforehand

[–] [email protected] 19 points 10 months ago* (last edited 10 months ago) (2 children)

who needs modulo when you can get less characters out of

while (number > 1) {
  number -= 2;
}
return number;

very efficient

edit: or theres the trusty iseven api

[–] [email protected] 9 points 10 months ago (2 children)

here is somewhat less:

return (number % 2) == 0;

[–] [email protected] 10 points 10 months ago (1 children)
[–] [email protected] 8 points 10 months ago* (last edited 10 months ago) (1 children)

This is the way. Modulo takes too long to compute, bitwise compare should be a lot faster.

return !(number & 0x1);
[–] [email protected] 5 points 10 months ago* (last edited 10 months ago)

oh shit yo

this comment chain is pretty awesome, I learned a lot from this thanks!

[–] [email protected] 4 points 10 months ago

just check the last bit jesus christ, what is it with these expensive modulo operations?!

return !(n&1);

[–] [email protected] 1 points 10 months ago

are the negative numbers all even?

[–] [email protected] 7 points 10 months ago
[–] [email protected] 4 points 10 months ago (1 children)
#You are an input. You have value! You matter!
if number % 2 == 0
  return "number is even" (is_num_even = 1 or true)
else
  return "number is odd" (is_num_even = 0 or false)

Am I doing it right? /S.

[–] [email protected] 4 points 10 months ago

Don't put nbsps in code blocks, they show up literally.

[–] [email protected] 3 points 10 months ago

Name doesn't check out.

[–] [email protected] 2 points 10 months ago

This code is terrible. If you input 10.66 it returns "number is odd

It should be:

if number % 2 == 0
  return "number is even" (is_num_even = 1 or true)
else
  return "number is not even" (is_num_even = 0 or false)
[–] [email protected] 2 points 10 months ago

are u a wizard?

[–] [email protected] 1 points 10 months ago

John carmak posting