j037 - 11854 - Egypt
題目描述
題目要求判斷給定的三條邊長是否能構成一個直角三角形。輸入為三條邊長,輸出 "right" 如果是直角三角形,否則輸出 "wrong"。輸入 0 0 0 時結束程式。
解題思路
解題思路是先將三條邊長排序,然後檢查最小兩邊的平方和是否等於最大邊的平方。如果相等,則為直角三角形,輸出 "right",否則輸出 "wrong"。利用排序可以方便地找到最大邊和最小兩邊。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
#include <algorithm>
using namespace std;
int a[3];
int main(){
while(1){
for(int i=0;i<3;++i)cin >> a[i];
if(a[0]+a[1]+a[2]==0)return 0;
sort(a,a+3);
if(a[0]*a[0]+a[1]*a[1]==a[2]*a[2])cout << "right\n";
else cout << "wrong\n";
}
}