题意:给出直角三角形一边,求另两边,如果存在输出任意一组即可。
【分析】
对于直角三角形△ABC,如图:

我们知道的是

因为题目说如果题目存在多种解,输出任何一个就可以了,所以我们不妨假设输入的n是一条直角边的长度,那么

根据平方差公式可得

那么,这个时候,我们要求解的就是a,b
于是乎,我们分类讨论即可

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
int main(void)
{
ll n;
while(cin >> n)
{
if(n <= 1) puts("-1");
else
{
if(n%2)
printf("%I64d %I64d\n", (n*n+1)/2-1, (n*n+1)/2);
else
printf("%I64d %I64d\n", (1+(n*n)/4)-, 1+(n*n)/4);
}
}
return 0;
}
直角三角形求边长
本文介绍了一种计算直角三角形未知边长的方法,当已知一条边的长度时,可以求出另外两条边的长度。文章通过分类讨论提供了具体的计算公式,并附带了C++代码实现。
834

被折叠的 条评论
为什么被折叠?



