43 lines
894 B
Python
43 lines
894 B
Python
>>> def floyd(rowcount=5):
|
|
rows = [[1]]
|
|
while len(rows) < rowcount:
|
|
n = rows[-1][-1] + 1
|
|
rows.append(list(range(n, n + len(rows[-1]) + 1)))
|
|
return rows
|
|
|
|
>>> floyd()
|
|
[[1], [2, 3], [4, 5, 6], [7, 8, 9, 10], [11, 12, 13, 14, 15]]
|
|
>>> def pfloyd(rows=[[1], [2, 3], [4, 5, 6], [7, 8, 9, 10]]):
|
|
colspace = [len(str(n)) for n in rows[-1]]
|
|
for row in rows:
|
|
print( ' '.join('%*i' % space_n for space_n in zip(colspace, row)))
|
|
|
|
|
|
>>> pfloyd()
|
|
1
|
|
2 3
|
|
4 5 6
|
|
7 8 9 10
|
|
>>> pfloyd(floyd(5))
|
|
1
|
|
2 3
|
|
4 5 6
|
|
7 8 9 10
|
|
11 12 13 14 15
|
|
>>> pfloyd(floyd(14))
|
|
1
|
|
2 3
|
|
4 5 6
|
|
7 8 9 10
|
|
11 12 13 14 15
|
|
16 17 18 19 20 21
|
|
22 23 24 25 26 27 28
|
|
29 30 31 32 33 34 35 36
|
|
37 38 39 40 41 42 43 44 45
|
|
46 47 48 49 50 51 52 53 54 55
|
|
56 57 58 59 60 61 62 63 64 65 66
|
|
67 68 69 70 71 72 73 74 75 76 77 78
|
|
79 80 81 82 83 84 85 86 87 88 89 90 91
|
|
92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
|
>>>
|