解题思路:
同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语言代码)浏览:741 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1216 |
C语言训练-求PI* (C语言代码)浏览:641 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1110 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:772 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:717 |
The 3n + 1 problem (C语言代码)浏览:603 |
printf基础练习2 (C语言代码)浏览:653 |
模拟计算器 (C++代码)浏览:885 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:569 |