Recursion.png

Arthur Mayer
4 min readFeb 4, 2021

How to figure out Recursion concept in programming ? Tough to explain but let me tell you the story of Kad & Jo !
Basically, recursion is a function that call itself.

Function used :

float _pow_recursion(float x, float y){    if (y == 0)        return (1);    if (y < 0)        return (_pow_recursion(x, y + 1) / x);    return (_pow_recursion(x, y - 1) * x);}

Kad: Let’s watch the last season of Star Trek Discovery !

Jo: Can’t wait ! I hope that Burnham will listen to the captain this time !

Kad: What are your logs ?

Jo: The login is “_pow_recursion(7, 3)” and the password is its result, but…

I forgot the result…

Kad: Uhh… Ok i know how to find it, wait a second !

Kad & Jo: Hello Marina, do you know what is _pow_recursion(7, 3) ?

Marina: y = 0 ?

Kad & Jo: No it is 3 !

Marina: y < 0 ?

Kad & Jo: No, it is 3…

Marina: Then it is equal to _pow_recursion(7, 2) * 7 !

Kad & Jo: Ok, but what is _pow_recursion(7, 2) ?

Marina: Uhh…wait a second, I call you back !

Marina: Hello Doria, do you know what is _pow_recursion(7, 2) ?

Doria: y = 0 ?

Marina: No it is 2 !

Doria: y < 0 ?

Marina: No, it is 2…

Doria: Then it is equal to _pow_recursion(7, 1) * 7 !

Marina: Ok, but what is _pow_recursion(7, 1) ?

Doria: Uhh…wait a second, I call you back !

Doria: Hello Mathieu, do you know what is _pow_recursion(7, 1) ?

Mathieu: y = 0 ?

Doria: No it is 1 !

Mathieu: y < 0 ?

Doria: No, it is 1…

Mathieu: Then it is equal to _pow_recursion(7, 0) * 7 !

Doria: But what is _pow_recursion(7, 0) ?

Mathieu: Uhh…wait a second, I call you back !

Mathieu: Hello mummy, do you know what is _pow_recursion(7, 0) ?

Mathieu’s mom: y = 0 ?

Mathieu: Yes…

Mathieu’s mom: Then it is 1 …

Mathieu: And 1 * 7 = 7 !

Mathieu’s mom: I can see you’ve never been truanting from school…

Mathieu: Thank you mom, I love you, bye !

Mathieu: _pow_recursion(7, 0) is equal to 1 !

So,

_pow_recursion(7, 1) = _pow_recursion(7, 0) * 7

= (1) * 7

= 7 !

Doria: Great, Thank you Mathieu !

Doria: _pow_recursion(7, 1) is equal to 7 !

So,

_pow_recursion(7, 2) = _pow_recursion(7, 1) * 7

= (7) * 7

= 49 !

Marina: Great thank you Doria !

Marina: _pow_recursion(7, 2) is equal to 49 !

So,

_pow_recursion(7, 3) = _pow_recursion(7, 2) * 7

= (49) * 7

= 343 !

Kad & Jo: Great thank you Marina !!!

M. Burnham will disobey (once again)

--

--