递归之数字三角形

时间复杂度2的n次方。。。

#include<iostream>
using namespace std;

int MaxSum(int r,int j,int N,int D[100][100])
{
	if(r==N)
	{
		return D[r][j];
	}
	else
	{
		if(MaxSum(r+1,j,N,D)>MaxSum(r+1,j+1,N,D))
		{
			return MaxSum(r+1,j,N,D)+D[r][j];
		}
		else
		{
			return MaxSum(r+1,j+1,N,D)+D[r][j];
		}
	}
}

int main()
{
	int D[100][100];
	int N=0;
	cin>>N;
	int i=0,j=0;
	for(i=0;i<N;i++)
	{
		for(j=0;j<=i;j++)
		{
			cin>>D[i][j];
		}
	}
	cout<<MaxSum(0,0,N-1,D);
/*	
	for(i=0;i<N;i++)
	{
		for(j=0;j<=i;j++)
		{
			cout<<D[i][j];
		}
		cout<<endl;
	}
*/
	return 0;
}
发布了202 篇原创文章 · 获赞 18 · 访问量 74万+

猜你喜欢

转载自blog.csdn.net/nanfeiyannan/article/details/105282559
今日推荐