#if 0
有N根棍子,棍子i的长度为Ai,想要从中选出3根棍子组成周长尽可能长的三角形,请输出最大的周长,若无法组成三角形则输出0
#endif
#include <iostream>
int Solve(int *Array,int n);
int Get_max(int k,int x);
int Get_max(int k,int x)
{
if(k<x)
return x;
else
return k;
}
int Solve(int *Array,int n)
{
int i=0,j=0,k=0;
int maxlength=0;
int maxside=0;
int totallength=0;
int restlength=0;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
for(k=j+1;k<n;k++)
{
totallength=*(Array+i)+*(Array+j)+*(Array+k);
maxside=Get_max(*(Array+i),Get_max(*(Array+j),*(Array+k)));
restlength=totallength-maxside;
if(maxside<restlength)
{
maxlength=Get_max(maxlength,totallength);
}
}
std::cout << "The max total length :" << maxlength << std::endl;
return maxlength;
}
int main()
{
int a[5]={4,5,10,20};
Solve(a,5);
return 0;
}
三角形问题
最新推荐文章于 2020-05-12 00:18:46 发布