三角形
#include<stdio.h> int max(int a,int b) ; void solve(int a[], int n) ; int main() { int n ; scanf("%d",&n ) ; int a[n] ; for(int i=0; i<n; i++) scanf("%d",&a[i]) ; solve(a,n) ; return 0 ; } void solve(int a[], int n) { int ans = 0 ;//答案 //让i<j<k,这样棍子就不会被重复选了 for(int i=0; i<n; i++) { for(int j=i+1; j<n; j++) { for(int k=j+1; k<n; k++) { int len = a[i] + a[j] + a[k] ; //周长 int ma = max(a[i], max(a[j], a[k])) ;//最长棍子的长度 int rest = len - ma ; //其余两根棍子的长度之和 if(ma<rest) //可以组成三角,如果可以更新答案则更新 ans = max(ans, len) ; } } } printf("%d", ans) ; } int max(int a,int b) { if(a>b) return a ; else return b ; }