GitBook

这里写图片描述 这里写图片描述

错排问题 也就是 a[i]=(i-1)*(a[i-1]+a[i-2])

这里涉及到阶乘 也不想换数据类型了 所以由规律知加了一个判断

#include<stdio.h>
int j(int m) {
	if(m==1)
		return 1;
	else
		return m*j(m-1);
}
int main() {
	int a[15]= {0,0,1};
	for(int i=3; i<13; i++) {
		a[i]=(i-1)*(a[i-1]+a[i-2]);
	}
	int T;
	scanf("%d",&T);
	while(T--) {
		int n;
		scanf("%d",&n);
		if(n<13)
			printf("%.2lf%%\n",a[n]*100.0/j(n));
		else
			printf("36.79%%\n");
	}
	return 0;
}

题目地址:【杭电】[2048]神、上帝以及老天爷