198
submitted 2 years ago* (last edited 2 years ago) by andioop@programming.dev to c/programming_horror@programming.dev
you are viewing a single comment's thread
view the rest of the comments
[-] noddy@beehaw.org 22 points 2 years ago* (last edited 2 years ago)

I know how to fix this!

bool IsEven(int number) {
    bool even = true;
    for (int i = 0; i < number; ++i) {
        if (even == true) {
            even = false;
        }
        else if (even == false) {
            even = true;
        }
        else {
            throw RuntimeException("Could not determine whether even is true or false.");
        }
    }

    if (even == true) {
        return even ? true : false;
    }
    else if (even == false) {
        return (!even) ? false : true;
    }
    else {
        throw RuntimeException("Could not determine whether even is true or false.");
    }
}
[-] odium@programming.dev 7 points 2 years ago

Have you tried seeing if the recursive approach runs faster?

[-] noddy@beehaw.org 13 points 2 years ago

I know an even better way. We can make it run in O(1) by using a lookup table. We only need to store 2^64 booleans in an array first.

this post was submitted on 07 Dec 2023
198 points (100.0% liked)

Programming Horror

1910 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 @Ategon@programming.dev

Rules

Credits

founded 2 years ago
MODERATORS