• Buddahriffic@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    4 months ago

    Just need to add some code that saves the base stack pointer, detects when the stack is about to run out, then saves the current number, resets the stack to the original pointer but now with the current number as x and continues on to fix the stack overflow issue. You don’t even have to restore the stack when it’s all unwinding!

    The integer overflow issue would be more complicated to solve except it isn’t really an issue because chopping off the upper bits doesn’t affect the eveness of a value.

    Oh and I thought of a quick way to verify the result of the algorithm. It should give the same result as this expression that you can use in your test suite:

    !(x & 1)
    

    Edit: um, new formatting problem… And that amp shows up in the edit box so it might even keep expanding.