nyoj-659-判断三角形(大坑)

原创 2015年07月10日 16:23:40

判断三角形

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述

  小明非常喜欢研究三角形。现在,小明已经知道三角形的三条边,如果三条边能组成三角形,小明就会很高兴,他就会得到一个“YE”,如果他经过进一步的研究知道它又是等腰三角形,

他又会得一个“YE”,他再次研究出它又是一个等边三角形,当然,他又会得到一个“YE”。

小明当然不想自己判断了!那请你帮他写一个程序计算出给你三条边小明会得到几个“YE”?

提示1:最后普通三角形得到一个,等腰得到两个,等边得到三个

提示2:请严格按下面输出格式输出

输入
首先,输入一个T,代表有几组测试数据。
接下来有T行,每行有三个数,代表三条边。
输出
对于每组测试数据首先输出”Case #H:”H代表第几组测试数据,接下来输出小明得到的“YE”
数目,如果小明得不到“YE”,请输出“NO”。
样例输入
23 3 25 2 1
样例输出
Case #1:YE YECase #2:NO

解题思路:

        这是一道很水很水的题,但是我却做了半天,是我思路出问题了。

        一开始我让sum=0,三个条件并列,每符合一个条件则sum++,然后对应几就输出几个YE。

        但是当输入2 2 5时,本来不能构成三角形,但是我的输出却为YE

        这是为什么呢?

         因为三个条件不是并列的,是包含关系,即第二个条件的前提是第一个条件,第三个条件的前提是前两个条件。

         看好多人都说明明测试数据正确,但是却WA了,这个时候一定要静下心来,如果不是在比赛过程中,你可以先放下,忙会儿其他的,分散一下注意力之后再回来做。

代码

#include<stdio.h>
#include<algorithm>
using namespace std;
int bian[5];
int main()
{
	int n;
	int i;
	int now=1;
	int sum;
	scanf("%d",&n);
	while(n--)
	{
		for(i=1;i<=3;i++)
		    scanf("%d",&bian[i]);
		sort(bian+1,bian+4);
		sum=0;
		/*最初做法(三条件并列)
		if(bian[1]+bian[2]>bian[3])
		    sum++;
		if(bian[1]==bian[2]||bian[2]==bian[3])
		    sum++;
		if(bian[1]==bian[2]&&bian[1]==bian[3])
		    sum++;
		*/ 
		if(bian[1]+bian[2]>bian[3])
		{
		    sum++;
		    if(bian[1]==bian[2]||bian[2]==bian[3])
		    {
		        sum++;
		        if(bian[1]==bian[2]&&bian[1]==bian[3])
		            sum++;
		    }
		}
		printf("Case #%d:\n",now);
		switch(sum)
		{
			case 0:printf("NO\n");break;
			case 1:printf("YE\n");break;
			case 2:printf("YE YE\n");break;
			case 3:printf("YE YE YE\n");break;
		}
		now++;		
	}
	return 0;
}


nyoj952 最大四边形(叉乘+技巧)

最大四边形 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗? 输入有多组测试...
  • u013634213
  • u013634213
  • 2014年10月17日 19:41
  • 593

NYOJ 题目952 最大四边形(几何,技巧)

最大四边形 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗? 输入有多组测试...
  • yu_ch_sh
  • yu_ch_sh
  • 2015年01月25日 21:16
  • 596

nyoj952最大四边形 思路+代码

最大四边形 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗? 输入有多组测试数据 第一行整数n,表...
  • qq_36738482
  • qq_36738482
  • 2017年07月02日 11:55
  • 122

NYOJ 952 最大四边形 (n个点求组成四边形的最大面积)

最大四边形 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗? 输入有多组测试数据 第一行整数n,...
  • helloiamclh
  • helloiamclh
  • 2015年11月24日 15:29
  • 573

最大四边形

最大四边形 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗? 输入有多组测试...
  • zuguodexiaoguoabc
  • zuguodexiaoguoabc
  • 2015年05月05日 17:07
  • 434

nyoj 952 最大四边形

描述 平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗? 输入 有多组测试数据 第一行整数n,表示有n个点,( 4 然后n行,每行x,y表示点的坐标。(没有重复的点) 输出 最...
  • yangkunpengD
  • yangkunpengD
  • 2016年05月05日 20:06
  • 402

NYOJ - 矩形嵌套(经典dp)

矩形嵌套 时间限制:3000 ms  |           内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩...
  • SevenMIT
  • SevenMIT
  • 2013年04月12日 21:14
  • 4468

如何判断一个点在三角形内部

如何判断一个点在三角形内部基本思路如图,点P在三角形ABC内部,可以通过以下三个条件判断: 点P和点C在直线AB同侧 点P和点B在直线AC同侧 点P和点A在直线BC同侧 如果以上三个条件同时满足,则点...
  • pdcxs007
  • pdcxs007
  • 2016年05月17日 15:31
  • 5560

一个简单的判断三角形形状的C程序

昨天写了一个判断三角形形状的程序,然后EZ发现了里面的无数个问题。 原本我的程序是 #include int main() { int a,b,c; scanf("%d,%d,%d...
  • u013798387
  • u013798387
  • 2014年04月22日 10:05
  • 2179

nyoj判断三角形

判断三角形 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述   小明非常喜欢研究三角形。现在,小明已经知道三角形的三条边,如果三条边能组成三角形,小明就会很高...
  • R1986799047
  • R1986799047
  • 2015年02月04日 14:49
  • 418
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nyoj-659-判断三角形(大坑)
举报原因:
原因补充:

(最多只允许输入30个字)