杭電2048--大坑提示

錯排公式,推導過程見百度

有一個大坑是輸出內容有%號時必須用printf("%%"),不能用printf("%")

#include<cstdio>
#include<iostream>
using namespace std;
long long int factorial(int n)
{
	long long m=1;
	for(int i=2;i<=n;i++)
	{
		m*=i;
	}	
	return m;
}
int main()
{
	int n,m;
	long long d[22];
	d[0]=d[1]=0,d[2]=1;
	for(int i=3;i<22;i++)
	{
		d[i]=(i-1)*(d[i-1]+d[i-2]);
	}
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&m);
		printf("%.2lf%%\n",d[m]*100.0/factorial(m));
	}
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章