https://mavigadget.site/cs/programmer-recursion-definition-gift-for-c