uva11455 Behold My Quadrangle

uva11455

uDebug11455

给定四个正整数(范围在0-2的30次方之间)用来表示四条边长,根据这四条边长判断,是否能组成正方形(仅判断边长,不考虑夹角)?能,则输出"square";不能,则判断是否能组成矩形(仅判断边长,不考虑夹角)?能,则输出"rectangle";不能,则再判断是否能组成四边形?能,则输出"quadrangle",否则输出"banana"

从题意来看,就是简单考虑边长的问题,不用考虑夹角。所以,判断正方形还是长方形,或者仅仅是四边形,或者啥也不是(banana),就只需要对输入的正整数排序,然后简单比较即可。

python版本AC代码

testcase = int(input())
while testcase >0:
	testcase -= 1
	s = list(map(int,input().split()))
	s.sort()
	if s[0] == s[3]:
		print('square')
	else:
		if s[0] == s[1] and s[2]==s[3]:
			print('rectangle')
		elif s[0] + s[1] + s[2] <= s[3]:
			print('banana')
		else:
			print('quadrangle')

C++版本AC代码

#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

//#define ZANGFONG
int s[4];

int main()
{
    #ifdef ZANGFONG
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    #endif // ZANGFONG
    int testcase;
    scanf("%d\n",&testcase);
    while(testcase--)
    {
        scanf("%d%d%d%d\n",&s[0],&s[1],&s[2],&s[3]);
        sort(s,s+4);
        if(s[0]==s[1]&&s[1]==s[2]&&s[2]==s[3]) printf("square\n");
        else
        {
            if(s[0]==s[1] && s[1] != s[2] && s[2]==s[3]) printf("rectangle\n");
            else if(s[0]+s[1]+s[2] <= s[3]) printf("banana\n");
            else printf("quadrangle\n");
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zangfong/article/details/82940148
my