به کد زیر دقت کنید:
#include <stdio.h>
int fact(unsigned int);
int main()
{
printf("%d\n", fact(5));
return 0;
}
int fact(unsigned int n)
{
// stop condition
if(n == 0 || n == 1) return 1;
return n * fact(n - 1);
}
در کد بالا فاکتوریل عدد ۵ با استفاده از تابع fact که بصورت بازگشتی عمل میکند، چاپ میشود. خروجی برنامهٔ بالا عدد ۱۲۰ است. در توابع بازگشتی و یا حلقهها حتما باشد یک شرط توقف (Stop Condition) وجود داشته باشد، وگرنه بازگشت یا چرخش حلقه تا بینهایت تکرار میشود. در کد بالا اگر n برابر با صفر یا یک شود، بازگشت متوقف میشود.