題目敘述
每筆測資第一行有一個正整數N,接下來會有N行,每一行會有四個正整數代表四邊形的四個邊長。要求輸出是否是「正方形」、「長方形」、「四邊形」、或是「無法形成四邊形」。
範例輸入 #1
4
10 8 7 6
9 1 9 1
29 29 29 29
5 12 30 7
範例輸出 #1
quadrangle
rectangle
square
banana
解題思路
將四個邊長收到Vector中,並且進行排序。
正方形:四邊等長
長方形:前兩邊相等、後兩邊相等
四邊形:前三個邊的和「大於」第四個邊
非四邊形:Else
解題程式碼如下 (僅供參考):
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
for (int i = 0; i<N; i++)
{
vector<int>num;
bool zero = false;
for (int j = 0; j<4; j++)
{
int tmp;
cin >> tmp;
num.push_back(tmp);
if (tmp == 0) zero = true;
}
if (zero)
{
cout << "banana\n";
continue;
}
sort(num.begin(), num.end());
if (num[0] == num[1] && num[1] == num[2] && num[2] == num[3]) cout << "square\n";
else if (num[0] == num[1] && num[2] == num[3]) cout << "rectangle\n";
else if (num[0] + num[1] + num[2] > num[3]) cout << "quadrangle\n";
else cout << "banana\n";
}
}
留言
張貼留言