b557
輸入說明 :
第一行有一數字 T ,代表有幾組測試資料 (1<=T<= 50)
每組測試資料包含兩行
第一行有一數字 N ,代表有幾根木棒 (1<=N<=100)
第二行有N個數字 a_i 以空白隔開,代表木棒的長度(1<=a_i<=100)
輸出說明 :
對於每筆測試資料輸出一行,每行包含一個數字 x 代表可以組成幾種直角三角形。
對於每一組數字,做Cn取3的動作,然後最大的那個數之平方是不是另外兩數平方之和
#include <stdio.h>
#include <algorithm>
using namespace std;
int main ()
{
int T;
int N;
int i,j,k;
scanf("%d",&T);
while(T--)
{
scanf("%d",&N);
int array[N];
int triangle=0;
for(i=0;i<N;i++)
scanf("%d",&array[i]);
sort(array,array+N);
for(i=0;i<N-2;i++)
for(j=i+1;j<N-1;j++)
for(k=j+1;k<N;k++)
{
int itemp=array[i]*array[i],
jtemp=array[j]*array[j],
ktemp=array[k]*array[k];
if(ktemp==itemp+jtemp)
triangle+=1;
}
printf("%d\n",triangle);
}
return 0;
}