数字三角形
来源:互联网 发布:软件测试行业多少年 编辑:程序博客网 时间:2024/05/29 19:24
从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数全部加起来,如何走才能使的这个和尽量大?
7 38 810 2744 45265
#include<iostream>
#include<cstring>
using namespace std;
int a[1000][1000];
int main()
{
int n;
cin>>n;
for(int i=0; i<n; i++)
for(int j=0; j<=i; j++)
{
cin>>a[i][j];
}
for(int i=n-1; i>=0; i--)
for(int j=0; j<i; j++)
{
a[i-1][j]+=max(a[i][j],a[i][j+1]);//从两个数中选大的加
}
/*for(int i=0; i<n; i++)//输出操作完成的输入数据
{
for(int j=0; j<=i; j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}*/
}
000000070000038000081000027440045265
/*#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1000][1000];
int main()
{
int n;
cin>>n;
memset(a,0,sizeof(a));//建立n+1行和列的方阵,没有读入的补0
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
for(int i=2;i<=n;i++)
for(int j=1;j<=i;j++)
a[i][j]+=max(a[i-1][j-1],a[i-1][j]);//从两个数中选大的加
/*for(int i=1; i<=n; i++)//输出操作完成的输入数据
{
for(int j=1; j<=i; j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}*/
int t=a[n][1];
for(int i=1;i<=n;i++)//找出最大的数
{
if(t<a[n][i])
{
t=a[n][i];
}
}
cout<<t<<endl;
return 0;
}
1、从下往上走,直到第一行第一个数一定是最大的
转换成下列存储形式
#include<iostream>
#include<cstring>
using namespace std;
int a[1000][1000];
int main()
{
int n;
cin>>n;
for(int i=0; i<n; i++)
for(int j=0; j<=i; j++)
{
cin>>a[i][j];
}
for(int i=n-1; i>=0; i--)
for(int j=0; j<i; j++)
{
a[i-1][j]+=max(a[i][j],a[i][j+1]);//从两个数中选大的加
}
/*for(int i=0; i<n; i++)//输出操作完成的输入数据
{
for(int j=0; j<=i; j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}*/
cout<<a[0][0]<<endl;
}
2、从上往下走,必须在最后一行中找到最大的那个数,且必须建立n+1行和列的方阵
/*#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1000][1000];
int main()
{
int n;
cin>>n;
memset(a,0,sizeof(a));//建立n+1行和列的方阵,没有读入的补0
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
for(int i=2;i<=n;i++)
for(int j=1;j<=i;j++)
a[i][j]+=max(a[i-1][j-1],a[i-1][j]);//从两个数中选大的加
/*for(int i=1; i<=n; i++)//输出操作完成的输入数据
{
for(int j=1; j<=i; j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}*/
int t=a[n][1];
for(int i=1;i<=n;i++)//找出最大的数
{
if(t<a[n][i])
{
t=a[n][i];
}
}
cout<<t<<endl;
return 0;
}
阅读全文
0 0
- 数字三角形!
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 数字三角形
- 如何在office2016(word2016)中安装mathtype6.9及相关问题解决方案
- linux知识笔试与面试宝典(二)
- 交通情况数据集
- 《python入门学习笔记3》(内置函数BIF)
- 12. UE4中的信息交互
- 数字三角形
- 用Lambda表达式解决面试题java两种线程,一个线程打印 1~52,另一个线程打印字母A-Z,打印顺序为12A34B56C……5152Z。
- 指向指针的指针
- StringBuffer使用不当,引起的性能问题
- bazel-0.5.4-installer-linux-x86_64.sh 下载
- opencv2肤色检测代码
- 运维面试篇------2.CDN基础面试
- 一对多关系的多表关联查询
- CSDN如何转载别人的文章?