用c++写从键盘输入n, 编程计算1!-2!+3!-4!+……+n!的值。
时间: 2023-09-07 14:12:38 浏览: 104
c代码-编写一个求阶乘的函数Fact(),然后在主函数中,计算并输出1到n之间所有数的阶乘值
5星 · 资源好评率100%
```c
#include <stdio.h>
int main() {
int n, i, j, k, sum = 0, flag = 1;
printf("请输入n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
k = 1;
for (j = 1; j <= i; j++) {
k *= j;
}
if (flag == 1) {
sum += k;
flag = 0;
} else {
sum -= k;
flag = 1;
}
}
printf("1!-2!+3!-4!+...+n!的值为:%d", sum);
return 0;
}
```
解析:
1. 首先从键盘输入n;
2. 然后用for循环计算1至n的阶乘;
3. 在循环中,用flag变量来判断当前计算的阶乘应该加还是减;
4. 最后输出结果。
注意:本题中的“1!-2!+3!-4!+...+n!”是一个等差数列,其中的公差为-2,首项为1!,因此可以直接用公式计算其和,即sum = (n/2) * (1! - n!) + (n%2) * (1! - (n-1)!)。
阅读全文