NC25129. 勾股定理
描述
输入描述
一个整数n。
输出描述
另外两条边b,c。答案不唯一,只要输出任意一组即为合理,如果无法构造请输出-1。
示例1
输入:
3
输出:
4 5
示例2
输入:
4
输出:
3 5
C++ 解法, 执行用时: 4ms, 内存消耗: 512K, 提交时间: 2022-01-12 22:33:24
#include<stdio.h> int main() { long long a,b=0,c=0; scanf("%lld",&a); if(a%2!=0) { b=(a*a-1)/2; c=b+1; } else { c=(a*a)/4+1; b=c-2; } if(b==0||c==0)printf("-1"); else printf("%lld %lld",b,c); return 0; }
C(clang 3.9) 解法, 执行用时: 4ms, 内存消耗: 484K, 提交时间: 2020-04-08 17:53:49
#include<stdio.h> main() { long long b,c,a; scanf("%lld",&a); if(a==0||a==1||a==2){ printf("-1"); return 0; } if(a%2) { b=1;c=a*a; } else { b=2;c=a*a/2; } printf("%lld %lld",(c-b)/2,(c+b)/2); }
pypy3(pypy3.6.1) 解法, 执行用时: 132ms, 内存消耗: 18588K, 提交时间: 2020-04-08 16:57:53
n = int(input()) if(n <= 2): print(-1) elif (n & 1): print((n * n + 1) // 2 - 1, (n * n + 1) // 2) else: print((n * n + 4) // 4 - 2, (n * n + 4) // 4)
Python3(3.5.2) 解法, 执行用时: 30ms, 内存消耗: 3552K, 提交时间: 2019-09-06 22:21:15
n=int(input()) if n<=2: print(-1) elif n&1: n>>=1 print(2*n*n+2*n,2*n*n+2*n+1) else: n>>=1 print(n*n-1,n*n+1)