小明的难题
- 描述
-
课堂上小明学会了用计算机求出N的阶乘,回到家后就对妹妹炫耀起来。为了不让哥哥太自满,妹妹给小明出了个问题“既然你会求N的阶乘,那么你帮我算算1!+2!-3!+4!-5!+……N!”。这下可把小明难住了,聪明的你能帮帮他吗?
- 输入
- 第一行输入一个整数 T(0<T<=20),代表有 T 组测试数据。
之后有 T 行,每行输入一个正整数N(0<N<=20)。
- 输出
- 每组测试数据占一行,输出1!+2!-3!+…..N!的值。
- 样例输入
-
2 2 4
- 样例输出
-
3 21
1 #include <stdio.h> 2 3 long long jieCheng(int n); 4 5 int main(){ 6 int T; 7 int n; 8 int i; 9 long long result; 10 11 scanf("%d",&T); 12 13 while(T--){ 14 scanf("%d",&n); 15 16 result=0; 17 18 for(i=1;i<=n;i++){ 19 if(i!=1 && i%2==1) 20 result-=jieCheng(i); 21 22 else 23 result+=jieCheng(i); 24 } 25 26 printf("%lld\n",result); 27 } 28 29 return 0; 30 } 31 32 long long jieCheng(int n){ 33 int i; 34 long long result; 35 36 result=1; 37 38 for(i=1;i<=n;i++) 39 result*=i; 40 41 return result; 42 }