神、神と神
件名の説明:
HDU 2006'10 ACMコンテストの大賞が始まったショー!
主催者は、壮大な、巨大なラッフルの賞品を開催し、次のようにアクティブな雰囲気のために、この活動の具体的な要件は以下のとおりです。
まず、当事者にすべてのスタッフは、ドローボックスに彼の名前をメモして書き込みます。
その後、すべてのノートまで添加が完了したそれぞれのボックスからのメモを取って、
そして最後に、その後、彼の名前を作っている場合に書かれたノートは、「あなたは、宝くじをおめでとう勝った!」
あなたはすべての後に、時間の温かい雰囲気を想像することができます受賞者たちはツインズの夢、それの写真をサイン入りということです!デザイン・コメディへのすべての試みは、しばしば悲劇で終わるようしかし、これも、最後の人が勝つ抽選ではありません!
私の神、神との良い神は、どのようにこれが起こるのだろうか?
しかし、最初のない興奮に、今の質問は、あなたはそれの確率が起こって計算することができますか?
それはカウントされませんか?あなたも悲劇で終わるしますか?!入力
入力データCの最初の行は整数であり、各ラインは、整数N(1 <N <= 20)が含まれ、次いでC線データ、テストケースの数を示し、宝くじの参加者の数を示します。
出力
各テストケースのために、このパーセンテージが発生出力は、例えば、各行の出力は、2つの小数点(丸み)の結果は、特定のフォーマットの出力例を参照します。
サンプル入力
1 2サンプル出力
50.00パーセント
分析:
理解することはより困難なトピックは、主に式の間違った行を覚えています:
F(N)=(I - 1)* [F(N - 1)(N - 2)+ F] |
その答えによって:
#include<stdio.h>
long long a[22]; //注意long long类型,不能太小
int f(int n){ //递推
a[0]=0;
a[1]=0;
a[2]=1;
a[3]=2;
for(int i=4;i<=n;i++){
a[i]=(i-1)*(a[i-1]+a[i-2]); //错排公式
}
}
int main(){
int c,n,i;
double s;
long long N; //注意要为long long型
while(scanf("%d",&c)!=EOF){
while(c--){
scanf("%d",&n);
N=1;
for(i=1;i<=n;i++){
N*=i;
}
f(n);
s=((float)a[n]/(float)N)*100;
printf("%.2lf%%\n",s); //保留两位小数,百分号表示
}
}
return 0;
}