大神帮我看看
#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
这样就能求出总共的行数,并且结果也对。