C语言 · 数字三角形 · 算法训练
2024-08-20 12:51:22
算法训练 数字三角形
时间限制:1.0s 内存限制:256.0MB
问题描述
(图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路
径,使该路径所经过的数字的总和最大。
●每一步可沿左斜线向下或右斜线向下走;
●1<三角形行数≤100;
●三角形中的数字为整数0,1,…99;
径,使该路径所经过的数字的总和最大。
●每一步可沿左斜线向下或右斜线向下走;
●1<三角形行数≤100;
●三角形中的数字为整数0,1,…99;
.
(图3.1-1)
输入格式
文件中首先读到的是三角形的行数。
接下来描述整个三角形
输出格式
最大总和(整数)
样例输入
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
样例输出
30
注释:一开始思路是:从上至下每一行每个元素都算下来并选择改行总和最大的那一种情况,算是枚举,却有递归的感觉··总之就是没做出来。
后来仔细看题发现从最后一行往上走似乎清晰不少。
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int m[n][n];
for(int i=;i<n;i++){
for(int j=;j<=i;j++){
scanf("%d",&m[i][j]);
}
}
for(int i=n-;i>;i--) {
for(int j=;j<i;j++){
if(m[i][j]>m[i][j+]){
m[i-][j] += m[i][j];
}else{
m[i-][j] += m[i][j+];
}
}
}
printf("%d",m[][]);
return ;
}
最新文章
- javascript中Array的操作
- JAVA 各种数值类型最大值和最小值 Int, short, char, long, float,&;nbs
- Code笔记 之:防盗链(图片)
- linux eclipse3.6.1 maven安装
- Echarts - js
- HDU 5636 Shortest Path 分治+搜索剪枝
- json序列化后日期如何变回来
- css考核点整理(十一)-响应式开发经验,响应式页面的三种核心技术是什么
- 【算法Everyday】第二日 求子数组的最大和
- 解决Windows 程序界面闪烁问题的一些经验
- 神经网络与深度学习笔记 Chapter 6之卷积神经网络
- 接口自动化框架(java)--4.接口Token传递
- SpringBatch Sample (五)(复合格式文件的读、多文件的写)
- Java学习第二篇 — 时间类的使用
- win7游戏窗口设置
- 2.TypeScript 基础入门(二)
- SpringMVC Ajax两种传参方式
- 设计模式之笔记--解释器模式(Interpreter)
- IDE vscode识别webpack中alias配置路径
- JS DOM视频相关的知识