杭电acm2048
最后数据会超过 2 ^32 - 1。
输出%用%%。
#include <stdio.h>
#include <math.h>
int main() {
int n, i, k;
__int64 a[21][2]={{1, 0}, {1, 0}, {2, 1}};
for(i=3; i<21; i++) {
a[i][0] = i * a[i-1][0];
a[i][1] = (i-1) * (a[i-1][1] + a[i-2][1]);
}
/*for(i=0; i<21; i++) {
printf("%d %d ", a[i][0], a[i][1]);
}*/
while(scanf("%d", &n) != EOF) {
while(n--) {
scanf("%d", &k);
printf("%.2f%%\n", a[k][1] * 100.0 / a[k][0]);
}
}
return 0;
}

浙公网安备 33010602011771号