• noddy@beehaw.org
    link
    fedilink
    arrow-up
    23
    ·
    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.");
        }
    }
    
    • odium
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      Have you tried seeing if the recursive approach runs faster?

      • noddy@beehaw.org
        link
        fedilink
        arrow-up
        13
        ·
        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.