题意是说,给定三角形的三条边,判断能否组成三角形,如果不能,输出Case x: Invalid,如果可以,还需要进一步判断,并相应输出Case x: triangle type(三角形类型)。这里的三角形类型有Equilateral(等边三角形),Isosceles(等腰三角形),Scalene(非上述两类的普通三角形)
题目很简单,也是入门题吧。可能唯一要注意的就是对C/C++来说,三条边a、b、c的取值范围。
python版本AC代码
testcase = int(input())
for i in range(testcase+1):
if i == 0:
continue
a,b,c = map(int,input().split())
if a+b>c and a+c>b and b+c>a:
if a == b and b == c:
print("Case {}: Equilateral".format(i))
elif (a == b and b != c) or (a == c and b != c) or (b == c and a != b):
print("Case {}: Isosceles".format(i))
else:
print("Case {}: Scalene".format(i))
else:
print("Case {}: Invalid".format(i))
C++版本AC代码
#include <iostream>
#include<cstdio>
using namespace std;
//#define ZANGFONG
int main()
{
#ifdef ZANGFONG
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif // ZANGFONG
int testcase,i;
long long a,b,c;
scanf("%d\n",&testcase);
for(i = 1; i <= testcase; i++)
{
scanf("%lld%lld%lld\n",&a,&b,&c);
if(a+b>c && a+c>b &&b+c>a)
{
if(a == b && b == c) printf("Case %d: Equilateral\n",i);
else if((a == b && b != c)||(a == c && b != c)||(b == c && a != b))
printf("Case %d: Isosceles\n",i);
else printf("Case %d: Scalene\n",i);
}
else printf("Case %d: Invalid\n",i);
}
return 0;
}