Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Problem statement
- =================
- Here’s another way to define whether a positive whole number is even or odd:
- • Zero is even.
- • One is odd.
- • For any other number N, its evenness is the same as N - 2.
- Define a recursive function isEven corresponding to this description. The function should accept a number parameter and return a Boolean.
- Test it on 50 and 75. See how it behaves on -1. Why? Can you think of a way to fix this?
- */
- function isEven(num1){
- if(isNaN(num1)){
- return 'Not a number!';
- }
- else if(num1 == 0){
- return 'even';
- }
- else if(num1 == 1){
- return 'odd';
- }
- else{
- if(num1 > 0){
- return deduct(num1 - 2);
- }
- else{
- return deduct(num1 + 2);
- }
- }
- function deduct(num2){
- return isEven(num2);
- }
- }
- console.log('Entered number is: ' + isEven(0));
- console.log('Entered number is: ' + isEven(1));
- console.log('Entered number is: ' + isEven(50));
- console.log('Entered number is: ' + isEven(75));
- console.log('Entered number is: ' + isEven(-50));
- console.log('Entered number is: ' + isEven(-75));
- console.log('Entered number is: ' + isEven('lorem'));
- /*
- Output
- ======
- "Entered number is: even"
- "Entered number is: odd"
- "Entered number is: even"
- "Entered number is: odd"
- "Entered number is: even"
- "Entered number is: odd"
- "Entered number is: Not a number!"
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement