• noddy@beehaw.org
    link
    fedilink
    arrow-up
    22
    ·
    edit-2
    1 year 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.");
        }
    }
    
      • noddy@beehaw.org
        link
        fedilink
        arrow-up
        10
        ·
        1 year 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.