1. 问题陈述
http://acm.hrbeu.edu.cn/index.php?act=problem&id=1003&cid=17
小A家里有很多长度不一样的木棍,有一天他很无聊,只能摆弄这些木棒来解闷了。小A的数学学得很好,所以他想在这些木棒中挑出3根来组成一个直角三角形,当然,他有可能有很多种选法,所以他还想挑出一个面积最大的。
2. 解题思路
由于数组是从小到大排列的,这里采用穷举的方法来实现。
3. 实现代码
#include <stdio.h>
void main(){
int num,i,j,k,s[100],flag=1,t=0;
float ans,Ans;
while (flag) {
scanf("%d",&num);
getchar();
if(num==0) break;//输入0为结束
for(i=0;i<num;i++)
{
scanf("%d",&s[i]);
//getchar();
}
// 遍历文件
for(i=0;i<num;i++){
for(j=i+1;j<num;j++){
for(k=j+1;k<num;k++){
// 数组从小大排列
if(s[i]*s[i]+s[j]*s[j]==s[k]*s[k]){
t=1;
ans=0.5*s[i]*s[j];}
if(ans>=Ans) Ans=ans;
}//for
}//for
}//for
if(t==0)
printf("My God!/n");
else
printf("%.3f/n",Ans);
t=Ans=ans=0;
}//while
}//main