# Greedy# Conditional Statements

e521 - 106 彰雲嘉區複賽 - Q1 三角形

🔗 前往 ZeroJudge 原題

題目描述

題目給定三個正整數,代表三角形的三邊長,要求判斷這三邊是否能構成一個三角形。如果能構成三角形,則進一步判斷是否為等腰三角形。

解題思路

首先,根據三角形不等式判斷三邊長是否能構成三角形,即任意兩邊之和必須大於第三邊。如果滿足這個條件,則可以構成三角形,輸出 1。接著,判斷三角形是否為等腰三角形,即判斷是否有兩邊長相等。如果相等,則輸出 1,否則輸出 0。如果最初的三邊長無法構成三角形,則直接輸出 0。

複雜度分析

  • 時間複雜度: O(n)
  • 空間複雜度: O(1)

程式碼

#include <stdio.h>
int main(){
	int a,b,c;
	scanf("%d",&a);
	while(scanf("%d%d%d",&a,&b,&c)>0){
		if(a<b+c&&b<a+c&&c<b+a){
			printf("1 ");
			if(a==b||b==c||c==a)
				printf("1\n");
			else
				printf("0\n");	
		}
		else
			printf("0\n");
	}
}

Discussion