编写M函数求n!。用此函数求s=1!+2!+3!……+n!的值。其中n由键盘输入。
时间: 2023-10-04 19:04:19 浏览: 91
下面是一个求n!的M函数:
```
let fact = (n) => {
if (n <= 1) {
return 1;
} else {
return n * fact(n - 1);
}
}
```
接下来我们可以使用上面的函数来求s=1!+2!+3!……+n!的值。具体的实现方法如下:
```
let n = input("请输入n的值:");
let s = 0;
for (let i = 1; i <= n; i++) {
s += fact(i);
}
print("s的值为:", s);
```
这个程序中,我们首先通过input函数从键盘读取n的值,然后使用for循环求出s的值。在每次循环中,我们调用了上面的fact函数来求出i的阶乘,并将其加到s中。最后,我们通过print函数输出s的值。
需要注意的是,上面的程序中使用了JavaScript语言的箭头函数和let关键字,如果你使用的是其他语言,可能需要做出相应的调整。
相关问题
自定义一个函数求1+1/2+1/3+……+1/n,编写程序,在主函数中求s=s1+s2+s3的值,其中: s1=1+1/2+1/3+……+1/5 s2=1+1/2+1/3+……+1/10 s3=1+1/2+1/3+……+1/20
这道题目需要自定义一个函数来求1+1/2+1/3+……+1/n的和,然后在主函数中分别计算s1、s2、s3的值。下面是一个可能的解法:
```
#include <stdio.h>
// 自定义函数,用于求1+1/2+1/3+……+1/n的和
float sum(int n){
float s = 0;
for(int i=1; i<=n; i++){
s += 1.0/i;
}
return s;
}
int main(){
float s1, s2, s3;
s1 = sum(5);
s2 = sum(10);
s3 = sum(20);
printf("s1=%f\ns2=%f\ns3=%f\n", s1, s2, s3);
return 0;
}
```
在这个程序中,我们定义了一个名为sum的函数,用于求1+1/2+1/3+……+1/n的和。在主函数中,我们分别调用sum函数来计算s1、s2、s3的值,并将结果打印出来。
C语言3.编写一个求k!的递归函数long fac(int k),调用该函数求: n!+(n+1)!+(n+2)!+……+m!的值,n、m的值由键盘输入(n<m)。 如:n=1,m=4,则1!+2!+3!+4!=33
```c
#include <stdio.h>
long fac(int k);
long sum(int n, int m);
int main() {
int n, m;
printf("请输入n和m的值(n<m):");
scanf("%d%d", &n, &m);
printf("%d!+(%d+1)!+(%d+2)!+……+%d!=%ld\n", n, n, n, m, sum(n, m));
return 0;
}
long fac(int k) {
if (k == 0 || k == 1) {
return 1;
} else {
return k * fac(k - 1);
}
}
long sum(int n, int m) {
long s = 0;
for (int i = n; i <= m; i++) {
s += fac(i);
}
return s;
}
```
阅读全文