利用递归方法求n的阶乘
#include
int factorial(int n) {
if (n == 1) { // 基本情况
return 1;
} else { // 递归情况
return n * factorial(n-1);
}
}
int main() {
int n;
printf("请输入一个非负整数:");
scanf("%d", &n);
printf("%d! = %d\n", n, factorial(n));
return 0;
}
在上面的代码中,factorial()是一个递归函数。当n等于1时,函数返回1,这是递归的基本情况。当n大于1时,函数返回n乘以factorial(n-1)的结果,这是递归情况。因此,当我们调用factorial(n)时,它会递归地调用factorial(n-1)直到n等于1,然后返回1,开始从递归中返回并计算结果。
递归是一种编程技术,可以让函数通过调用自身来解决复杂的问题。在递归函数中,我们需要定义基本情况和递归情况。基本情况是函数可以直接返回结果的情况,而递归情况是函数需要递归调用自身来解决问题的情况。当我们使用递归时,我们需要小心不要陷入无限递归的情况,这可能导致程序崩溃或栈溢出。
领取专属 10元无门槛券
私享最新 技术干货