递归实现求 n 的阶乘:
int Rec_Factorial(int n)
{
if (n < 0)
return -1;
else if (n < 2)
return 1; //0 的阶乘为 1
else
return Rec_Factorial(n-1)*n;
}
非递归实现求 n 的阶乘:
int Factorial(int n)
{
int count = 1;
if (n < 0)
return;
else
{
for (; n>0; n--)
{
count *= n;
}
return count;
}
}
以递归方式输出一个整数的每一位:
void Rec_Print(int num)
{
if (num > 9)
Rec_Print(num / 10);
printf("%d ",num%10);
}
运行结果:
int main()
{
int num = 0;
num = 5;
printf("%d的阶乘为%d\n",num, Rec_Factorial(num));
printf("%d的阶乘为%d\n",num, Factorial(num));
Rec_Print(156);
system("pause");
return 0;
}