1047 - 判断三角形形状

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

给你三角形的三条边,你能告诉我它是哪种三角形吗?
如果是直角三角形,请输出“good”。如果是等腰三角形,请输出“perfect”。否则,请输出“just a triangle”。
题目保证输入数据合法。

题目输入

输入的第一行为一个整数t,表示测试样例的数量。
每组样例包含了三个整数a,b,c,代表了三角形的三条边的长度。(0<a,b,c<300)

题目输出

对于每组样例,输出结果,每组结果占一行。

输入/输出样例

输入格式

4
3 4 5
2 2 3 
1 4 4
4 6 3

输出格式

good
perfect
perfect
just a triangle

C语言解答

#include<stdio.h>

int main()
{
	int t,a,b,c;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d%d",&a,&b,&c);
		if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
			printf("good\n");
		else if(a==b||a==c||b==c)
			printf("perfect\n");
		else
			printf("just a triangle\n");
	}
	return 0;
}

C++解答

#include<stdio.h>

int main()
{
	int t,a,b,c;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d%d",&a,&b,&c);
		if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
			printf("good\n");
		else if(a==b||a==c||b==c)
			printf("perfect\n");
		else
			printf("just a triangle\n");
	}
	return 0;
}

Java解答

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String[] zong = in.nextLine().split(" ");
		int start=Integer.parseInt(zong[0]);
		for(int i=0;i<start;i++){
			String[] nei = in.nextLine().split(" ");
			int[] s=new int[3];
			s[0]=Integer.parseInt(nei[0]);
			s[1]=Integer.parseInt(nei[1]);
			s[2]=Integer.parseInt(nei[2]);
			int over=check(s[0],s[1],s[2]);
			if(over==-1){
				System.out.println("good");
			}
			if(over==0){
				System.out.println("just a triangle");
			}
			if(over==1){
				System.out.println("perfect");
			}
		}
	}

	private static int check(int a, int b, int c) {
		// TODO Auto-generated method stub
		ArrayList<Integer> array = new ArrayList<Integer>();
		array.add(a);
		array.add(b);
		array.add(c);
		Collections.sort(array);
		int d=0;
		
		int s1,s2,s3;
		s1=array.get(0);
		s2=array.get(1);
		s3=array.get(2);
		if((Math.pow(s1,2)+Math.pow(s2,2))==Math.pow(s3,2)){
			d=-1;
		}
		if((s1==s2)||(s1==s3)||(s3==s2)){
			d=1;
		}
		return d;
		
	}
	}

Python解答

allshape=[]
t=input()
for i in range(t):
    shape="just a triangle"
    abc=raw_input()
    abc=abc.split()
    for j in range(len(abc)):
        abc[j]=eval(abc[j])
    for a,b,c in [(0,1,2),(1,2,0),(2,0,1)]:
        if abc[a]==abc[b]:
            shape="perfect"
        if abc[a]*abc[a]+abc[b]*abc[b]==abc[c]*abc[c]:
            shape="good"
    allshape.append(shape)
for i in allshape:
    print i