HDU-2048 神、上帝以及老天爷
代码
#include <iostream>
using namespace std;
const int MAX = 21;
double jiecheng[MAX];
void f() {
jiecheng[1] = 1;
for(int i=2; i<MAX; i++) {
jiecheng[i] = jiecheng[i-1]*i;
}
}
int main() {
f();
int C;
scanf("%d", &C);
for(int i=0; i<C; i++) {
int n;
scanf("%d", &n);
double prob = 0;
for(int j=2; j<=n; j++) {
if(j%2) {
prob -= 1.0/jiecheng[j];
} else {
prob += 1.0/jiecheng[j];
}
}
printf("%.2lf%%\n", prob*100.0);
}
return 0;
}
注解
1、错排公式
2、区分:错排数目和错排概率。