1. 程式人生 > >uva11479 Is this the easiest problem?

uva11479 Is this the easiest problem?

 題意是說,給定三角形的三條邊,判斷能否組成三角形,如果不能,輸出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;
}