題目描述
使用if條件式來完成Bash腳本的流程控制是一個很好的方式。給定X、Y、Z三個整數,代表三角形的三個邊,請判斷這個三角形是否為不等邊三角形、等腰三角形或是正三角形。
原題網址
輸入格式
輸入X、Y、Z三個整數,範圍在1到1000之間(包含1和1000),分行隔開。輸入的任意兩數之總和,必定會大於第三邊,如此一來才能形成三角形。
輸出格式
如果輸入的三個邊所形成的三角形是正三角形,輸出「EQUILATERAL」;如果是等腰三角形,輸出「ISOSCELES」;如果不是正三角形也不是等腰三角形,輸出「SCALENE」。
範例輸入1
2
3
4
3
4
範例輸出1
SCALENE
範例輸入2
6
6
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