https://teezaar.com/ms/programmer-recursion-definition-gift-for-c