CodeForces 707C Pythagorean Triples(数学 构造)

来源:互联网 发布:市濑秀和知乎 编辑:程序博客网 时间:2024/05/21 09:10

题意:给出直角三角形一边,求另两边,如果存在输出任意一组即可。

点击打开链接

【分析】
对于直角三角形△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;}


0 0
原创粉丝点击