- 题目描述:
- 有n根小木棒,任选三根木棒组成一个三角形,问三角形周长最大是多少。(保证至少存在一种选法能组成三角形)
- 输入:第一行为一个正整数n,3=<n<=100 第二行为n个正整数,代表小木棒长度,不超过100.
- 输出:三角形周长的最大值
- 实例:
- 输入:
5
1 2 3 4 5
- 输出:
12
- 总结:
- 思路是从大到小排序,易知相邻三条边可构成周长最大三角形。
include
#include
using namespace std;
int Func(int num[], int sum)
{
for (int i=sum-1; i>1; i—)
{
if (num[i-2]+num[i-1]>num[i]) return num[i]+num[i-1]+num[i-2];
}
return 0;
}
int main()
{
int sum, out = 0;
int num[100];
//cin >> sum;
scanf(“%d”, &sum);
for (int i = 0; i < sum; i++)
{
//cin >> num[i];
scanf(“%d”, &num[i]);
}
sort(num, num+sum); //排序
out = Func(num, sum);
cout << out << endl;
return 0;
}
#include
using namespace std;
int Func(int num[], int sum)
{
for (int i=sum-1; i>1; i—)
{
if (num[i-2]+num[i-1]>num[i]) return num[i]+num[i-1]+num[i-2];
}
return 0;
}
int main()
{
int sum, out = 0;
int num[100];
//cin >> sum;
scanf(“%d”, &sum);
for (int i = 0; i < sum; i++)
{
//cin >> num[i];
scanf(“%d”, &num[i]);
}
sort(num, num+sum); //排序
out = Func(num, sum);
cout << out << endl;
return 0;
}