在C++中查詢直角三角形的其他兩條邊
在這個問題中,我們給定一個整數a,表示直角三角形的一條邊。我們需要檢查是否可以用邊a構成一個直角三角形。如果可以,則找到直角三角形的其他兩條邊。
讓我們舉個例子來理解這個問題:
輸入
a = 5
輸出
Sides : 5, 12, 13
解釋
直角邊的長度滿足:52 + 122 = 132
解決方案
解決這個問題的一個簡單方法是使用勾股定理。我們知道直角三角形的邊滿足勾股定理,即
a2 + b2 = c2
其中a和b是三角形的兩條直角邊,c是斜邊。
利用這個定理,我們將使用a計算b和c的值。
情況1
If a is even, c = (a2 + 4) + 1 b = (a2 + 4) - 1
情況2
If a is odd, c = (a2 + 1)/ 2 c = (a2 - 1)/ 2
程式示例:
示例
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
#define PI 3.1415926535
void printOtherSides(int n) {
int b,c;
if (n & 1) {
if (n == 1)
cout << -1 << endl;
else{
b = (n*n-1)/2;
c = (n*n+1)/2;
}
} else {
if (n == 2)
cout << -1 << endl;
else{
b = n*n/4-1;
c = n*n/4+1;
}
}
cout<<"Sides : a = "<<n<<", b = "<<b<<", c = "<<c<<endl;
}
int main() {
int a = 5;
printOtherSides(a);
return 0;
}輸出
Sides : a = 5, b = 12, c = 13
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP