Recursion.png
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 !!!