hdu 2519 新生晚会 排列组合

通过阶段性计算减少一次性的大值计算

#include <stdio.h>
int main()
{
    int t, a, b, i;
    __int64 c;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d%d", &a, &b);
        if(a < b)
            printf("0\n");
        else
        {
            c = 1;
            for(i = 1; i <= b; i++)
                c = c * (a - i + 1) / i;
            printf("%I64d\n", c);
        }
    }
    return 0;
}

 

posted @ 2014-11-15 00:09  keyboard3  阅读(91)  评论(0编辑  收藏  举报