三角形判断

GitHub跳转原题关系图返回列表

排序后三边中两条较短边之和大于最长边即可构成三角形。

OJ: noi_openjudge

题目 ID: ch0104-16

难度:入门

标签:几何条件判断python

日期: 2026-07-30 23:01

题意

判断三条正整数线段能否组成三角形。

思路

排序后设三边为 abca\leqslant b\leqslant c。只需检查 a+b>ca+b>c;其余两条三角不等式因边长为正自动成立。

代码

Python代码

python
sides = sorted(map(int, input().split()))
print("yes" if sides[0] + sides[1] > sides[2] else "no")

C++代码

cpp
#include <cstdio>
int main(){
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if( a+b > c && a+ c > b && b+c >a){
		printf("yes");
	}
	else
		printf("no");
	return 0;
}

复杂度

排序对象数固定,时间复杂度和额外空间复杂度均为 O(1)O(1)

总结

先排序能把三条不等式压缩成“短边和大于最长边”这一条。