用python写数字三角形,输入格式: 第一个行包含R(1≤ R≤1000),表示行的数目。 后面每行为这个数字金字塔特定行包含的整数。 所有的被供应的整数是非负的且不大于100。 输出格式: 单独的一行,包含那个可能得到的最大的和。 输入样例: 5 13 11 8 12 7 26 6 14 15 8 12 7 13 24 11 输出样例: 86
时间: 2024-03-20 09:42:26 浏览: 34
这也是一个经典的动态规划问题,可以用Python解决。
首先,我们可以用一个二维列表来存储数字三角形,初始化为输入的数字。
然后,我们从倒数第二行开始向上遍历,对于每个位置,我们可以选择下面一行对应位置的数字或者下面一行对应位置的右边数字,将其加上当前位置的数字,更新当前位置的数字。
最后,数字三角形的顶部位置就是最大的和。
下面是Python代码实现:
```python
r = int(input())
triangle = []
for i in range(r):
row = list(map(int, input().split()))
triangle.append(row)
# 从倒数第二行开始向上遍历
for i in range(r - 2, -1, -1):
for j in range(i + 1):
# 选择下面一行对应位置的数字或者下面一行对应位置的右边数字,将其加上当前位置的数字,更新当前位置的数字。
triangle[i][j] += max(triangle[i + 1][j], triangle[i + 1][j + 1])
# 数字三角形的顶部位置就是最大的和
print(triangle[0][0])
```
阅读全文