三角形

#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 ;
}

 

posted @ 2018-09-15 16:23  Hello'world  阅读(150)  评论(0编辑  收藏  举报