2010年4月18日 星期日

Problem 11455 Behold my quadrangle,判斷形狀

題目開宗明義說了:「任何正方形是一個矩形,任何長方形是一個四邊形,任何四邊形是由四個邊所構成的。但是不是所有矩形一定是正方形,不是所有四邊形一定是長方形,不是所有四個邊所構出來的一定是四邊形」。

題目給你四個邊長,請你判斷它可能會構成甚麼形狀,有"square"(正方形)、 "rectangle"(矩形), "quadrangle"(四邊形) or "banana"(啥都不是)。

首先,讀入四邊長之後,就要排序,因為判斷起來會方便許多。若四邊等長,則為 square;若四邊兩兩等長,則為 rectangle;若四邊形三邊加起來大於最大的邊,則為 quadrangle;剩下的,都是香蕉 (banana)。寫成 C 語言程式碼如下:
index = 0;  
for (i = 0; i < 4; i ++)
{
scanf("%d", &len[index ++]);
for (j = index - 1; j >= 1; j --)
if (len[j] < len[j - 1])
tmp = len[j], len[j] = len[j - 1], len[j - 1] = tmp;
else
break;
}
if (len[0] == len[3]) { printf("square\n"); continue; }
if (len[0] == len[1] && len[2] == len[3])
{ printf("rectangle\n"); continue; }
if (len[0] + len[1] + len[2] > len[3])
{ printf("quadrangle\n"); continue; }
printf("banana\n");

By David.K

p11455題目連結
回ACM題庫目錄
回首頁

沒有留言: