设计一个求n!的函数。n的值(n<16)由键盘输入,要求在main中调用该阶乘函数。
时间: 2024-02-18 10:01:23 浏览: 20
好的,我可以为您提供求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("请输入n的值:");
scanf("%d", &n);
if (n < 0 || n > 15) {
printf("n的值超出范围!\n");
return 0;
}
printf("%d!的值为:%d\n", n, factorial(n));
return 0;
}
```
在该代码中,我们定义了一个递归函数`factorial`,用于求解n的阶乘,同时在`main`函数中获取用户输入的n的值,并调用`factorial`函数求解n的阶乘。为了避免n的值超出范围,我们在`main`函数中加入了一个判断条件,如果n的值小于0或大于15,则提示用户输入的n的值超出范围。
注意,该代码实现的阶乘函数适用于n较小的情况,如果n较大,则会出现栈溢出等问题。
相关问题
11.(程序题)设计一个求n!的函数。n的值(n<16)由键盘输入,要求在main中调用该阶乘函数。
好的,以下是求n!的函数代码:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 0 || n == 1) { // 0! 和 1! 都等于1
return 1;
}
else {
return n * factorial(n - 1); // 递归求解n!
}
}
int main() {
int n;
cout << "请输入n的值(n<16): ";
cin >> n;
cout << n << "! = " << factorial(n) << endl;
return 0;
}
```
我们定义了一个名为factorial的函数,它接受一个参数n,用于计算n!。如果n为0或1,则直接返回1,否则通过递归调用自身来计算n!。在main函数中,我们先从键盘读入n的值,然后调用factorial函数来计算n!,最后输出结果。
编写求阶乘的函数,在主函数中调用该函数,求n!并输出结果,n从键盘上输入(n<10)
以下是使用递归方式求解阶乘的函数代码:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 1 || n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n;
cout << "请输入n的值(n<10):" << endl;
cin >> n;
cout << n << "! = " << factorial(n) << endl;
return 0;
}
```
该程序中,`factorial()` 函数使用了递归方式求解阶乘。当输入的 n 等于 1 或 0 时,递归停止,返回 1;否则,继续递归调用 `factorial()` 函数。
在 `main()` 函数中,程序从键盘输入 n 的值,然后调用 `factorial()` 函数求解 n! 并输出结果。
需要注意的是,由于 n 的值较小,因此在使用递归方式求解阶乘时不会出现栈溢出的情况。如果需要求解较大的阶乘,建议使用循环方式实现。