c294 - APCS-2016-1029-1三角形辨別
題目描述
題目要求讀入三個整數,判斷這三個整數是否能構成三角形,如果能構成,則判斷三角形的類型(銳角、直角、鈍角)。
解題思路
首先,將輸入的三個數字進行排序,方便後續判斷。然後,根據三角形的判斷規則:
- 如果任意兩邊之和小於或等於第三邊,則無法構成三角形。
- 如果兩邊平方和等於第三邊平方,則為直角三角形。
- 如果兩邊平方和小于第三邊平方,則為鈍角三角形。
- 如果兩邊平方和大于第三邊平方,則為銳角三角形。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int a[3]={0};
while(cin >> a[0] >> a[1] >> a[2]){
sort(a,a+3);
cout << a[0] << " "<< a[1] << " "<< a[2] << endl;
if(a[0]+a[1]<=a[2])
cout << "No\n";
else if(a[0]*a[0]+a[1]*a[1]<a[2]*a[2])
cout << "Obtuse\n";
else if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2])
cout << "Right\n";
else
cout << "Acute\n";
}
}