zgjja


私信TA

用户名:zgjja

访问量:10842

签 名:

X_X

等  级
排  名 147
经  验 7116
参赛次数 0
文章发表 71
年  龄 0
在职情况 学生
学  校
专  业 X_X

  自我简介:

解题思路:
    同1813题。数据量比较小,所以可以直接计算对应的组合数。


注意事项:
格式化输出比较麻烦,需要观察规律,第一个数前面有2个空格,外加对应的缩进,同时还要考虑数字与数字之间的间隔(数字格式是右对齐,总长6位)。


参考代码:

def calculate_it(n: int, k: int) -> int:
    # n != 0
    import math, functools
    if k == 0:
        return 1
    elif k == 1:
        return n
    else:
        return functools.reduce(lambda a, b: a *b, [i for i in range(n, n - k, -1)]) // \
               math.factorial(k)


n_0, res = int(input()), [[1]]
for i in range(1, n_0 + 1):
    res.append([calculate_it(i, j) for j in range(i + 1)])
for k in range(len(res)):
    print(' ' * (2 + 3 * (n_0 - k)), sep='', end='')
    for k_0 in range(len(res[k])):
        if k_0 == 0:
            print('1', sep='', end='')
        else:
            print("{0:>6d}".format(res[k][k_0]), sep='', end='')
    print()


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区