I will assumes that you have heard of recursions and know a little or more on coding, better said - functions, methods or a code blocks.
Okay, having established a basis, lets talk about one of programmers nightmares -
Recursion.
I personally, have had a hard time understanding it and it happened I had those light bulb moments while having a bath and thinking of a challenge I had just solved using
recursion. Yeah, some times you solve challenges and it snaps - it works but deep down, you know you haven't fully understood why it worked. Don't worry, if it happens to you, the bad news is that you are now alone. Though I would probably say "Its because we haven't been able to intuitively understand the problem/solution".
Back to bathing and thinking of why my solution worked - well it just had to, I had even dreamt about solving the challenge. The good news is I figured out the whole stuff and yes, I figured it out the intuitive way (
I had that priceless "Ahaa" moment when you suddenly shout "UP NEPA" - just incase you dont understand the Ahaa moment, trust me you dont need it to know about Recursions) and that is what am about to share. Relax!!!, it easier than you think, it is so simple that you probably overlooked looking at
Recursions that way.
(next time you have a problem, try thinking about it while taking a bath, there is something in the water that makes the solution flow intuitively. If I and Archimedes can do it, you can also do it)