Good solution! I think you should show the last 3 lines that makes it work tho. FIFY:
private bool IsEven(int number){ if (number == 1) return false; else if (number == 2) return true; else if (number == 0) return true; else if (number == -1) return false; else return !IsEven(abs(number) - 1); }
Not sure why people still implement this themselves when there are APIs that will do it for you, like https://isevenapi.xyz/
Those companies that judge output by lines of code are asking for this
That’s terrible! Didn’t we all learn that each method must have exactly one return statement? Please refactor to use a return variable and a single return. And get off my lawn!
deleted by creator
bool isEven(int num) { return !isOdd(num); } bool isOdd(int num) { return !isEven(num); }
I’ve actually seen this type of code produced by a human-being who was trying to write good code. It was one of the students in my introduction to programming class in university, we had to write a function that squared a number or something, and he had written hundreds of lines of if-statements. Sometimes you just use what you know to complete an assignment I guess 🤷
I did something similar for a programming competition once because I couldn’t remember the c64 basic function to return string length.
Once I got home I rewrote it properly because it bugged me so badly. LEN(string variable) was the command. Stupid!
Though I want to add this case for interview questions: “Write code that outputs every prime number smaller than 10.”
And if the candidate doesn’t do ‘print “2,3,5,7”;’, I will deduct points.
I always figured this was a nice joke but obviously not code that would ever actually be written by someone… Then I ran into this millimeter to inch conversion code in production this past month:
if (isNaN(mm)) return 0; if (mm == 6) { inch = 0.125; } else if (mm == 8) inch = 0.25; else if (mm == 10) inch = 0.375; else if (mm == 15) inch = 0.5; else if (mm == 20) inch = 0.75; else if (mm == 25) inch = 1; else if (mm == 30) inch = 1.25; else if (mm == 40) inch = 1.5; else if (mm == 50) inch = 2; else if (mm == 60) inch = 2.5; else if (mm == 80) inch = 3; else if (mm == 90) inch = 3.5; else if (mm == 100) inch = 4; ...
You missed some cases…
All my tests pass