大神帮我看看

zzyoucan 2012-06-01 07:19:57
#include<iostream>
using namespace std;
int a[100][100];
int N;
int max(int a,int b)
{
return a>b?a:b;
}
int f(int row,int col)
{
if(row==N-2)
{
return max(a[row+1][col],a[row+1][col+1])+a[row][col];
}
return max(f(row+1,col),f(row+1,col+1))+a[row][col];
}
int main()
{
//输入三角形的行数
cin>>N;
for(int i=0;i<N;++i)
for(int j=0;j<i+1;++j)
cin>>a[i][j];
cout<<f(0,0)<<endl;

return 0;
}
如果不要求输入多少行, 而是由输入的数字个数求出来,而这些输入的数字以一个数字如-1标志结束如:
1
1 2
1 2 3
1 2 3 4
-1
这样就能求出总共的行数,并且结果也对。
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzyoucan 2012-06-01
  • 打赏
  • 举报
回复
就是从键盘输入一个三角数,然后求这些数的最大值如
1
1 2
1 3 3
1 5 2 4
那么就是11,就是用算法上的动态规划法做的,但本题要输入总共有多少行,最好能打印出路径如
[1 2 3 5]
lijian22500 2012-06-01
  • 打赏
  • 举报
回复
?? 不明白
W170532934 2012-06-01
  • 打赏
  • 举报
回复
楼主直接说什么问题吧

64,670

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧