c語言小明的難題

描述 
課堂上小明學會了用計算機求出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;
}

發佈了40 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章