求2!+4! +6!+8!+m+n! 说明:n从键盘输入,n为不超过16的偶数。 用户输入: 6 程序输出: 746
时间: 2023-10-09 18:10:57 浏览: 66
我们可以直接计算 2! + 4! + 6! + 8! 的结果,然后再加上用户输入的数的阶乘。
先计算 2! + 4! + 6! + 8!:
2! = 2
4! = 2 * 3 * 4 = 24
6! = 2 * 3 * 4 * 5 * 6 = 720
8! = 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320
所以 2! + 4! + 6! + 8! = 2 + 24 + 720 + 40320 = 41066
然后再加上用户输入的数的阶乘,即 m + n!,其中 n 输入为 6:
n! = 2 * 3 * 4 * 5 * 6 = 720
因为 m 未知,所以我们用 x 代替 m + n!,即:
x = m + 720
所以:
2! + 4! + 6! + 8! + m + n! = 41066 + x
= 41066 + (m + 720)
最后,根据用户输入的 n 为 6,即偶数,我们可以得到 m 的值:
m = x - 720
= 746
所以 2! + 4! + 6! + 8! + m + n! = 41066 + 746 + 720 = 42532。
因此,程序输出为:42532。
相关问题
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;
}
```
编写程序,实现以下功能:求m!+(m+1)!+...+(n-1)!+n!。m和n的值从键盘输入,且m<n。Java
以下是Java实现求m!+(m+1)!+...+(n-1)!+n!的程序:
```java
import java.util.Scanner;
public class FactorialSum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入m的值:");
int m = scanner.nextInt();
System.out.print("请输入n的值:");
int n = scanner.nextInt();
int sum = 0;
int factorial = 1;
for (int i = m; i <= n; i++) {
factorial *= i;
sum += factorial;
}
System.out.println("结果为:" + sum);
}
}
```
阅读全文