【算法】数字三角形

阅读: 评论:0

【算法】数字三⾓形
描述
如下所⽰为⼀个数字三⾓形。请编⼀个程序计算从顶到底的某处的⼀条路径,使该路径所经过的数字总和最⼤。只要求输出总和。
软件发布
1、 ⼀步可沿左斜线向下或右斜线向下⾛;
2、 三⾓形⾏数⼩于等于100;
3、 三⾓形中的数字为0,1, (99)
测试数据通过键盘逐⾏输⼊
输⼊样例
5漏泄同轴电缆
小型洗衣粉生产设备
7
3 8
8 1 0芯撑
2 7 4 4
4 5 2 6 5
输出
30
分析
本题利⽤递归的思想,当从顶层沿某条路径⾛到第i层向第i+1层前进时,我们的选择⼀定是沿其下两条可⾏路径中最⼤数字的⽅向前进,为此,我们可以采⽤倒推的⼿法,设a[i][j]存放从i,j 出发到达n层的最⼤值,则a[i][j]=max{a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]},a[1][1]即为所求的数字总和的最⼤值。
#include<iostream>
using namespace std;
int main()
{
int n,i,j,a[101][101];
cin>>n;
for(i=1; i<=n; i++)
for(j=1; j<=i; j++)
海砂混凝土cin>>a[i][j];
for(i=n-1; i>=1; i--)
for(j=1; j<=i; j++)
{
汽车电子防盗锁
if(a[i+1][j]>=a[i+1][j+1])                a[i][j]+=a[i+1][j];
else
a[i][j]+=a[i+1][j+1];
}
cout<<a[1][1]<<endl;
}

本文发布于:2023-07-26 00:04:31,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/192300.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数字   路径   总和   递归   请编   设备   软件   键盘
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图