About MeCurriculumLicensePortfolioProjectsPublicationsBD-blog

Categories: Programming

The first lecture of DSA was already interesting for me, I learned something about "Mutual Recursion" (when two procedures call each other). The pseudo-code example was about checking if a number is either even or odd.
Given that

  • 0 is even
  • N is even if n-1 is odd
  • N is odd if n-1 is even

And the algorithm:

even
INPUT: n – a natural number.
OUTPUT: true if n is even; false otherwise 

odd(n)
  if n = 0 then return FALSE
  return even(n-1)
even(n)
  if n = 0 then return TRUE
  else return odd(n-1)

I implemented a tiny C program which uses it:

#include <stdio.h>
int main (int argc, char const *argv[])
{
        // set an integer number here
        int number = 23945;
        // if the number is odd (1 = TRUE)
        if(odd(number)==1)
                printf("%d is odd\n",number);
        else
                printf("%d is even\n",number);
        return 0;
}

// returns 0 if the given number becomes 0, so the given number is odd
// returns even(number - 1) elsewhere
int odd(int number){
        if (number==0)
                return 0;
        else
                return even(number-1);
}

// returns 0 if the given number becomes 0, so the given number is even
// returns odd(number - 1) elsewhere
int even(int number){
        if(number==0)
                return 1;
        else
                return odd(number-1);
}
 

Let's see if I can keep understanding things at DSA :D

 
 

Leave a Reply