在c语言中用递归方法求n的阶乘
时间: 2023-09-24 16:14:15 浏览: 232
可以使用如下递归函数来求n的阶乘:
```c
int factorial(int n) {
// 基础情况
if (n <= 1) {
return 1;
}
else {
// 递归调用
return n * factorial(n-1);
}
}
```
这个函数的基础情况是当n等于1或0时返回1,否则递归调用函数本身并返回n乘以函数返回值。递归调用会一直进行下去,直到n等于1或0为止,此时递归函数的执行会逐层返回,最终得到n的阶乘的结果。
相关问题
c语言递归方法求n的阶乘
下面是使用 C 语言递归方法求 n 的阶乘的示例代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n = 5;
int result = factorial(n);
printf("%d! = %d\n", n, result);
return 0;
}
```
在上面的示例代码中,我们定义了一个名为 `factorial` 的递归函数,用于计算 n 的阶乘。如果 n 等于 0,则返回 1,否则返回 n 乘以 `factorial(n-1)` 的结果。在 `main` 函数中,我们将 n 设置为 5,并调用 `factorial` 函数计算 5 的阶乘。最后,我们使用 `printf` 函数将结果输出到控制台。
在C语言中用递归求x的n次方
下面是C语言中用递归求x的n次方的代码:
```c
#include<stdio.h>
double power(double x, int n){
if(n == 0) //x的0次方为1
return 1;
if(n == 1) //x的1次方为x
return x;
if(n < 0) //如果n为负数,则返回1除以x的-n次方
return 1 / power(x, -n);
else{
double res = power(x, n/2); //先计算x的n/2次方
if(n % 2 == 0) //如果n为偶数
return res * res;
else //如果n为奇数
return res * res * x;
}
}
int main(){
double x = 2.5;
int n = 4;
printf("%.2f的%d次方为%.2f\n", x, n, power(x, n));
return 0;
}
```
在这个程序中,我们定义了一个名为power的递归函数,用来计算x的n次方。首先判断n的值,如果n为0,则返回1;如果n为1,则返回x;如果n为负数,则返回1除以x的-n次方;否则,将问题分解为计算x的n/2次方,然后根据n的奇偶性计算x的n次方。最后,在main函数中调用power函数,并打印结果。