题目描述
给出直角三角形其中一条边的长度n,你的任务是构造剩下的两条边,使这三条边能构成一个直角三角形。
输入描述:
一个整数n。
输出描述:
另外两条边b,c。答案不唯一,只要输出任意一组即为合理,如果无法构造请输出-1。
示例1
输入 3
输出 4 5
示例2
输入 4
输出 3 5
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n,b,c;
cin>>n;
if(n%2!=0)
{
c=(n*n-1)/2;//当n是奇数时,总存在b,c使得c-b=1且n^2+b^2=c^2
b=c+1;
}
else
{
b=(n*n)/4+1;//当n是偶数时,总存在b,c使得c-b=2且n^2+b^2=c^2
c=b-2;
}
if(b==0||c==0)
cout<<"-1"<<endl;
else
cout<<c<<" "<<b<<endl;
return 0;
}