三角形-----求最大面积

题目描述:

小A家有很多长度不一样的木棍,有一天他很无聊,便摆弄这些木棒来解闷。小A的数学学得很好,所以他想在这些木棒中挑出3根来组成一个直角三角形,当然他有可能有很多种选发,所以他还是想挑选出一个面积最大的。

输出:

输入有多组,每组输入包含两行,第一行输入一个 n (0<= n <=100),表示小A有 n 根木棒,接着一行有 n 个整数(<=1000),表示木棒的长度(长度由小到大给出)。

输出:

输出面积最大的直角三角形的面积,且保留3位小数。如果不能组成,输出" My God!"。

样例输入:

4

1 2 3 4

5

2 3 4 5 6

6

3 4 5 6 8 10

2

样例输出:

My God!

6.000

24.000

My God!

代码如下:

 #include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,j,k;
    double ans;
    int n;
    int len[110];
    while(scanf("%d",&n)!=EOF)
    {
        for(i=1;1<=n;i++)
            scanf("%d",&len[i]);        //存储木棒的长度
        ans=-1;
        for(i=1;i<=n;i++)
        {
            for(j=i+1;j<=n;j++)
            {
                for(k=j+1;k<=n;k++)
                {
                    if(len[i]*len[i]+len[j]*len[j]==len[k]*len[k])
                    {
                        if(0.5*len[i]*len[j]>ans)       //取最优解
                            ans=0.5*len[i]*len[j];
                    }
                }
            }
        }
        if(ans==-1)
            printf("My God!\n");
        else
            printf("%.3lf\n",ans);
    }


    return 0;
}

你可能感兴趣的:(三角形-----求最大面积)