勾股定理

传送门.

题目描述

给出直角三角形其中一条边的长度n,你的任务是构造剩下的两条边,使这三条边能构成一个直角三角形。

输入描述

一个整数n。

输出描述

另外两条边b,c。答案不唯一,只要输出任意一组即为合理,如果无法构造请输出-1。

示例

输入

3

输出

4 5

解题思路

1.易得当输入的数为0,1,2时,找不到勾股数,直接输出-1。
2.我们只需要输出一组正解,所以我们不妨设输入的数a为直角边,我们要输出一条斜边和另一条直角边。 a2a^2a2=c2c^2c2-b2b^2b2
运用平方差公式可以得到a2c−b\dfrac {a^2}{c-b}c−ba2​=c+bc+bc+b
(1):我们首先考虑c−b=1c-b=1c−b=1的情况
可以得到a2=c+b==>b=a2−12a^2=c+b\qquad ==>\qquad b=\dfrac {a^2-1}{2}a2=c+b==>b=2a2−1​
同理c=a2−12+1c=\dfrac {a^2-1}{2}+1c=2a2−1​+1
因为a,b,ca,b,ca,b,c都是整数,所以(a2−1)(a^2-1)(a2−1)%2=0,即可证aaa为奇数,所以只要aaa为奇数,b,cb,cb,c就是上面的公式。
(2):接下来我们考虑a为偶数的情况我们
思考可得我们只需要考虑(c−b)(c-b)(c−b)%2=0,为了简单,我们考虑c−bc-bc−b=2,
同理由平方差公式可以得到:a2=2(c+b)a^2=2(c+b)a2=2(c+b)
既:b=a24−1c=a24+1b=\dfrac {a^2}{4}-1\qquad c=\dfrac {a^2}{4}+1b=4a2​−1c=4a2​+1
可得a2a^2a2一定是4的倍数,既证得偶数情况

AC代码

#include<stdio.h>
long long a,b,c;
int main()
{scanf("%lld",&a);if(a==0||a==1||a==2){printf("-1");return 0;}if(a%2==1){b=(a*a-1)/2;c=b+1;}if(a%2==0){b=((a*a)/2-2)/2;c=b+2;}printf("%lld %lld",b,c);return 0;
}

牛客练习赛51c-勾股定理相关推荐

  1. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  2. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  3. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  4. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)

    title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...

  5. 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)

    牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  6. 牛客练习赛73 D 离别(线段树+右端点排序离线查询)

    牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i,我们都找到一个区间(l,r)使得区间中的点为左端点时 里面最大的的种数为k. 这个可以用队列或者vector来维护. 然后我们对于q个查询, ...

  7. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

  8. 妄想集合(牛客练习赛90)

    妄想集合(牛客练习赛90) 题意: 开始有 n 个可重集合,开始时每一个集合中都有一个数,有 m 个操作. Quant l r x\text{Quant l r x}Quant l r x:往编号在 ...

  9. 踩不出足迹(牛客练习赛88 )

    踩不出足迹(牛客练习赛88 ) 题意: 长度为n的数组a,每个数是一个k位二进制 定义一下操作: 令第一次得到的结果为 a1a_1a1​.你需要从第二个数开始,每次可以选择与上一次得到的结果异或或者同 ...

  10. 牛客练习赛29 题解

    牛客练习赛29 A. 可持久化动态图上树状数组维护01背包 题解 这题跟标题没有任何关系- 贪心的使得负数删除的时候下标尽可能大,然后正数的时候下标尽可能小. 观察到每个数下标最大的时候就是它的初始下 ...

最新文章

  1. 20145236《网络攻防》Exp4 恶意代码分析
  2. 什么是RDF resource Description framework
  3. C++中虚函数工作原理和(虚)继承类的内存占用大小计算
  4. .net api 和java平台对接技术总结
  5. java中的args参数
  6. linux 创建临时文件目录 mktemp 命令(创建随机名临时文件)
  7. python语法箭头_Python中的函数注释:参数有冒号,声明后有- 箭头
  8. springboot异常处理方式
  9. vue学习-vuex状态
  10. 普中科技51单片机开发板
  11. 论文笔记:ALA loss:Adaptive Logit Adjustment Loss for Long-Tailed Visual Recognition
  12. 复数计算器(c++实训)
  13. 手机端微信突然弹出电脑端已登录,是什么原因?
  14. 硬盘的种类、区别、运行原理
  15. 视频直播APP开发的主要功能
  16. 搜狗输入法词库php词库怎么用,中州韵输入法导入搜狗词库(示例代码)
  17. 开票系统导出的OFD文档如何转换PDF格式?
  18. Java遍历指定目录或当前目录
  19. 电子元器件的种类与作用(超全)
  20. ABAP TSQL 字段异常

热门文章

  1. 解决网络专线未开放80端口的问题
  2. 宁静致远,静心修炼内功
  3. 《在路上 …》 [42区 新功能发布] 悬赏令 – 找到给你答案的人
  4. c语言while根据近似公式求,c语言用π=1-1/3+1/5-1/7+.公式求π的近似值,直到最后一项的绝对值小于10^-6为止...
  5. win10远程登录Ubuntu14.04图形化界面
  6. express中间件原理
  7. 视频剪辑教程自学如何剪辑视频,混剪视频怎么做
  8. 代码坏味道 之 7 依恋情结 feature envy
  9. 凡人修仙传之百炼冥门java_修仙缘:细说我与《凡人修仙传》的过往
  10. Mysql语句+Linux指令一步入门