锐角三角形
题目描述
n条边,任选3条边,能组成多少个锐角三角形(选的边不同就认为是不同的三角形)?
输入
第一个是一个整数T(1≤T≤1000),表示样例的个数。
每个样例占2行,第一行是一个整数n,3≤n≤100,表示边数。 第二行是n个整数ai,1≤ai≤10000,表示边的长度。
输出
依次每行输出一个样例的结果。
样例输入
2 4 1 1 1 1 3 1 2 3
样例输出
4 0
#include<stdio.h>
#include<stdbool.h>
bool triangle(int a,int b,int c)
{
return ((a*a+b*b>c*c)&&(a*a+c*c>b*b)&&(b*b+c*c>a*a));
}//锐角三角形的判断,两条小边的平方的和大于第三边的平方
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
int a[n];
int count=0;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n-2;i++)
{
for(int j=i+1;j<n-1;j++)//记住这里循环是从内到外的,所以j<n-1,
{
for(int k=j+1;k<n;k++)
{
if(triangle(a[i],a[j],a[k]))
{
count++;
}
}
}
}//利用一个三重循环枚举所有的可能性
printf("%d\n",count);
}
return 0;
}
标签:xtu,include,oj,int,scanf,样例,ai,锐角三角 From: https://blog.csdn.net/literature_art/article/details/143646424