编写函数:double fun( int n); 功能描述:返回n的阶乘; 要求:编写主函数并对fun进行调用,(例如:输出9的阶乘);将代码截图上传,代码首行需标注//学号+姓名
时间: 2023-05-18 08:02:36 浏览: 72
//学号 姓名
#include <iostream>
using namespace std;
double fun(int n) {
double result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int n = 9;
cout << n << "的阶乘为:" << fun(n) << endl;
return 0;
}
相关问题
编写函数 fun(),函数首部为 double fun(int n),其功能是计算 S=1!+2!+... +n!值,并通过函数值返回主调函数
很好,给出的题目要求我们编写一个名为 "fun" 的函数,该函数的输入为一个整数 n,函数的功能是计算 1! 2! ... n! 的和,并通过函数值返回给主调函数。
我们可以使用递归的方式来实现这个函数,代码如下:
```
double fun(int n) {
if (n == 1) {
return 1;
}
return factorial(n) + fun(n - 1);
}
```
这样,我们就可以在主函数中调用 fun(n),得到计算 1! 2! ... n! 的和的结果。
需要注意的是,在这个函数中,我们还需要调用一个名为 "factorial" 的函数来计算阶乘。
代码如下:
```
double factorial(int n) {
if (n == 1) {
return 1;
}
return n * factorial(n - 1);
}
```
综上所述,我们可以编写如下的完整代码:
```
#include <iostream>
double fun(int n) {
if (n == 1) {
return 1;
}
return factorial(n) + fun(n - 1);
}
double factorial(int n) {
if (n == 1) {
return 1;
}
return n * factorial(n - 1);
}
int main() {
int n;
std::cin >> n;
std::cout << fun(n) << std::endl;
return 0;
}
```
在主函数中,我们可以输入一个整数 n,然后调用 fun(n) 得到 1! 2! ... n! 的和的结果。
函数原型为:double fun(int n);根据下面的说明,编写该函数。 (1)功能:计算s=1/1!+1/2!+1/3!+...前n项和。 (2)入口:函数形参n>=1是一整数。 (3)出口:函数返回值是前n项和s。 (4)注意:函数类型(函数返回值)是double类型。
好的,根据您的要求,我已经明白您的问题了。下面是函数fun的代码实现:
```c++
#include <iostream>
using namespace std;
double fun(int n) {
double s = 0, fact = 1;
for (int i = 1; i <= n; i++) {
fact *= i;
s += 1.0 / fact;
}
return s;
}
int main() {
int n;
cout << "请输入n的值:";
cin >> n;
cout << "前" << n << "项和为:" << fun(n) << endl;
return 0;
}
```
上面的代码中,我们定义了一个函数fun,它的参数是n,表示要计算前n项和。在函数体内,我们使用一个循环来计算前n项的和,其中fact表示阶乘,s表示前n项和。最后,将计算结果返回给调用函数的地方。
在主函数中,我们通过输入n的值来调用函数fun,并输出计算结果。