原题链接:蓝桥杯算法提高VIP-Pascal三角
解题思路:
同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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复