課堂上小明學會了用計算機求出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
#include<stdio.h> long long fun(long long n)//求數的階乘 { if(n==1) return n*1; if(n>1) return n*fun(n-1); } int main() { int N,n,i; long long t; scanf("%d",&N); while(N--) { t=0; scanf("%d",&n); if(n==0) { t=1; } else { t=fun(1); for(i=2;i<=n;i++) { if(i%2) { t=t-fun(i); } else { t=t+fun(i); } } } printf("%lld\n",t); } return 0; }