一个数字三角形, 形式如下:
1
2 3
4 5 6
7 8 9 10
找出从第一层到最后一层的一条路,使得所经过的权值之和最小或者最大.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int len=5,i,j;
ifstream cin("aaa.txt");
int a[101][101];
for(i=0;i<5;i++)
for(j=0;j<=i;j++)
cin>>a[i][j];
for(i=0;i<5;i++)
{
for(j=0;j<=i;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
for(int i=len-2;i>=0;i--)
for(int j=0;j<=i;j++)
{
if(a[i+1][j]<a[i+1][j+1])
a[i][j]=a[i][j]+a[i+1][j+1];
else
a[i][j]=a[i][j]+a[i+1][j];
}
cout<<a[0][0]<<endl;
system("pause");
return 0;
}