zgjja


私信TA

用户名:zgjja

访问量:12024

签 名:

X_X

等  级
排  名 147
经  验 7314
参赛次数 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 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »