Python编程输出数字三角形,用c语言输出一个等腰三角形

  Python编程输出数字三角形,用c语言输出一个等腰三角形

  标题描述描述

  下图显示了一个数字三角形。请写一个程序,计算一条从上到下某处的路径,使该路径经过的数字之和最大化。

  (1)每一步都可以跟随左斜杠向下或右斜杠向下。

  (2)1排100个三角形

  (3)三角形的数字是0,1,…99。

  输入描述输入描述。

  有许多测试案例。对于每个测试用例,通过键盘逐行输入。第一行是输入的整数(如果整数为0,表示结束,不需要进一步处理),表示三角形行数N,后面是N行的个数。

  输出描述输出描述

  输出最大值。

  样本输入样本输入

  五

  七

  3 8

  8 1 0

  2 7 4 4

  4 5 2 6 5

  样本输出样本输出

  30

  思路:用动态编程建立一个二维数组dp。

  dp数组中的数值表示到达当前节点的累积最大值。动态规划要解决的问题必然是在每个子问题上得到最优解(称为最优子结构)。

  row=int(input())

  如果row==0:

  打印(0)

  否则:

  dp=[[0表示范围内的I(第1行)]表示范围内的j(第1行)]

  #用Python创建2D列表

  对于范围内的I(世界其他地区):

  line=input()。拆分()

  对于范围(I ^ 1)中的j:

  dp[i 1][j 1]=int(line[j])

  #打印(dp)

  对于范围内的k(第2行第1行):

  对于范围(1,k-1)中的p:

  dp[k][p]=max(dp[k-1][p-1],dp[k-1][p]) dp[k][p]

  last=dp[-1]

  最大值=-1

  对于最后的elem:

  如果elemmax:

  max=elem

  打印(最大)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: