در این قسمت نوبت به توابع بازگشتی در زبان برنامه نویسی ++C رسیده است.در این زبان این امکان وجود دارد که یک تابع خودش را صدا بزند. در این حالت تابع را بازگشتی (recursive) می نامند. یک تابع بازگشتی باید دارای شرطی باشد که به ازای آن خود را فراخوانی نمی کند. روش بازگشتی برای مسائلی استفاده می شود که مسئله اصلی می تواند به نسخه های کوچک تری از نسخه اصلی شکسته شود.

مثال. تابع بازگشتی زیر اعداد مابین آرگومانهایش را نمایش می دهد

 

 

 

 

 

البته توابع بازگشتی استفاده وسیعی ندارند زیرا خیلی کارآمد نیستند و اغلب زمانی کاربرد دارند که راه حل مسئله ساده تر می شود. خصوصا وقتی سرعت زیاد مهم نباشد.
مثال معروف بازگشتی تابع فاکتوریل است. تابع فاکتوریل در ریاضی به صورت حاصل ضرب اعداد صحیح غیر منفی به صورت زیر تعریف می شود:

۰! = ۱
n! = n * (n-1) * (n-2) * … * 2 * 1 for n > 0

این تعریف به راحتی به تابع زیر منتهی می شود:

اما تابع فاکتوریل را به صورت زیر نیز می تواند تعریف کرد:

۰! = ۱
n! = n * (n-1)! for n > 0

که با توجه ضابطه فوق تابع بازگشتی آن به صورت زیر نوشته می شود:که با توجه ضابطه فوق تابع بازگشتی آن به صورت زیر نوشته می شود: