uva11479 Is this the easiest problem?
阿新 • • 發佈:2018-12-14
題意是說,給定三角形的三條邊,判斷能否組成三角形,如果不能,輸出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; }