【杭电】[2048]神、上帝以及老天爷

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

错排问题
也就是
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]神、上帝以及老天爷

posted @ 2016-03-02 22:25  BoilTask  阅读(13)  评论(0编辑  收藏  举报