• Anticorp@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    Back when I was learning programming a lot of lessons would make you do something like this, and then show you the real way to do it in the next lesson. My reaction was always “why didn’t you lead with this?”.

    • misophist@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      This is confusing. I’m already using the iSeven API to determine if a number is 7. I’m getting a namespace collision error when I try to load this new API. Bug report filed.

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

  • recursive_recursion [they/them]@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    2 years ago

    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

  • SpeakinTelnet@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    2 years ago
    def is_even(n):
        match n:
            case 1:
                return False
            case 0:
                return True
            # fix No1
            case n < 0:
                return is_even(-1*n)
            case _:
                return is_even(n-2)