題目描述

使用if條件式來完成Bash腳本的流程控制是一個很好的方式。給定X、Y、Z三個整數,代表三角形的三個邊,請判斷這個三角形是否為不等邊三角形、等腰三角形或是正三角形。



原題網址

輸入格式

輸入X、Y、Z三個整數,範圍在1到1000之間(包含1和1000),分行隔開。輸入的任意兩數之總和,必定會大於第三邊,如此一來才能形成三角形。

輸出格式

如果輸入的三個邊所形成的三角形是正三角形,輸出「EQUILATERAL」;如果是等腰三角形,輸出「ISOSCELES」;如果不是正三角形也不是等腰三角形,輸出「SCALENE」。

範例輸入1

2
3
4

範例輸出1

SCALENE

範例輸入2

6
6
6

範例輸出2

EQUILATERAL

解題概念

三角形有X、Y、Z三個邊長。若X等於Y,且Y等於Z,表示此三角形為正三角形(三邊都等長);但若X等於Y,而Y不等於Z,表示此三角形為等腰三角形(兩邊等長)。若X不等於Y,且Y等於Z或是X等於Z,表示此三角形為等腰三角形(兩邊等長)。若X、Y、Z完全不相等,表示此三角形為不等邊三角形(沒有任何的兩邊等長)。

依照以上的判斷方法使用Bash的if條件式結構來撰寫腳本即可。

參考答案

#!/bin/bash
read x
read y
read z

if [ $x -eq $y ]; then
    if [ $y -eq $z ]; then
        echo "EQUILATERAL"
    else
        echo "ISOSCELES"
    fi
elif [ $y -eq $z ] || [ $x -eq $z ]; then
    echo "ISOSCELES"
else
    echo "SCALENE"
fi