杭电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;
}


posted @ 2015-03-13 13:06  StevenLuke  阅读(117)  评论(0编辑  收藏  举报