写一段用C语言递归方式求n!的代码
时间: 2024-04-17 19:24:24 浏览: 114
当可以!以下是使用递方式求n!的语言代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
int main() {
int n;
printf("请输入一个非负整数 ");
scanf("%d", &n);
if (n < 0) {
printf("输入错误,请输入非负整数!\n");
return 0;
}
int result = factorial(n);
printf("%d的阶乘是:%d\n", n, result);
return 0;
}
```
这段代码中定义了一个递归函数`factorial`,用于计算阶乘。如果输入的n为0或1,则直接返回1;否则,通过递归调用`factorial`函数来计算n的阶乘。在`main`函数中,读取用户输入的非负整数n,调用`factorial`函数计算n的阶乘,并将结果输出给用户。
请注意,这段代码假设用户输入的是非负整数,如果用户输入了负数,则会给出错误提示。
相关问题
用函数递归方法求n!,c语言编程
可以使用以下的C语言代码来实现n的阶乘的递归实现:
```c
#include <stdio.h>
int factorial(int n)
{
if(n == 1 || n == 0) // 递归终止条件
return 1;
else
return n * factorial(n - 1); // 递归调用
}
int main()
{
int n;
printf("请输入一个整数n:");
scanf("%d", &n);
printf("%d! = %d\n", n, factorial(n));
return 0;
}
```
这段代码中,factorial函数是递归实现的,当n等于1或0时,递归终止,返回1;否则,递归调用factorial函数,计算n * factorial(n-1)的值。在main函数中,读入一个整数n,然后输出n的阶乘。
用C语言写一段求n!的代码
当然可以!以下是用C语言编写的求!的代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n;
printf("请输入一个非负整数: ");
scanf("%d", &n);
if (n < 0) {
printf("输入错误,请输入非负整数!\n");
return 0;
}
int result = factorial(n);
printf("%d的阶乘是:%d\n", n, result);
return 0;
}
```
这段代码首先定义了一个递归函数`factorial`,用于计算阶乘。然后在`main`函数中,读取用户输入的非负整数n,通过调用`factorial`函数计算n的阶乘,并将结果输出给用户。
请注意,这段代码假设用户输入的是非负整数,如果用户输入了负数,则会给出错误提示。
阅读全文