比赛 板子大赛 评测结果 AAAAAAAAAA
题目名称 二项式展开 最终得分 100
用户昵称 zhm 运行时间 0.017 s
代码语言 C++ 内存使用 1.54 MiB
提交时间 2025-01-22 10:53:35
显示代码纯文本
#include <cstdio>

typedef unsigned long long ull;

const int N = 60;

void prt(ull k, int a, int b)
{
    if (!k) return ;
    if (k > 1) printf("%llu", k);
    if (a) printf("a");
    if (a > 1) printf("^%d", a);
    if (b) printf("b");
    if (b > 1) printf("^%d", b);
}

ull cal(int m, int n)
{
    ull s = 1;
    for (int i = n; i >= n - m + 1; i--)
        s = s * i / (n - i + 1);
    return s;
}

int main(void)
{
    freopen("binomial.in", "r", stdin);
    freopen("binomial.out", "w", stdout);
    int n;
    scanf("%d", &n);
    if (n == 0) {
 	    puts("1");
	   	fclose(stdin);
		fclose(stdout);
        return 0;
    }
    prt(1, n, 0);
    for (int i = n - 1; i >= 0; i--) {
        printf("+");
        prt(cal(i, n), i, n - i);
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}