#include<stdio.h> long long nj(int); int main() { int n=0; int m=0; long long dp[100]; dp[2]=1; dp[3]=2; scanf("%d",&n); while(n--) { scanf("%d",&m); for(int i=4;i<=m;i++) dp[i]=dp[i-1]*(i-1) + dp[i-2]*(i-1); // printf("%lld\n",dp[m]); //输出都未中奖的种类数 printf("%.2f%%\n",( (double)dp[m]/nj(m )*100) ); //两个long long 相除为0,需要将一个强制转换成doubl,C语言显示%号,在printf中要敲两个% } } long long nj(int x) //求所有情况的函数 { long long xj=1; for(int i=1;i<=x;i++) xj*=i; return xj; }
原文:https://www.cnblogs.com/wzmm/p/12667261.html