zoj 1453 Stripies

/*
根据题意:不难看出,要是整个方程式最小,那么应该大的数先结合,小的数后结合。先排序然后结合(贪心) 
*/ 
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int cmp(const void *a,const void *b)
{
    return (*(int *)a<*(int *)b);
} 
int main(void)
{
    int a[101];
    double sum;
    int n,i;
    while(scanf("%d",&n)!=EOF)
    {
        sum=0;
        for(i=0;i<n;i++)
        scanf("%d",&a[i]); 
        
        if(n<2)
        {
            sum=a[0];
        }
        else
        {
            qsort(a,n,sizeof(a[0]),cmp);
            sum=2*sqrt(1.0*a[0]*a[1]);
            for(i=2;i<n;i++)
            sum=2*sqrt(sum*a[i]);
        }
        
        
        printf("%.3lf
",sum);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/woshijishu3/p/3621516.html