勾股定理

题目描述

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

输入描述:

一个整数n。

输出描述:

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

输入

3

输出

4 5

官方题解:

对小范围数据进行打表,即可发现存在以下规律:
1.当n>2时总有方法可以构造
2.当n是奇数总存在两条边b,c使得c-b=1并且n^2+ b^2= c^2
3.当n是偶数总存在两条边b,c使得c-b=2并且n^2+ b^2= c^2
因此我们可以设边c=x,分n是奇数和偶数的情况,有
1.n是奇数,b=x-1->n^2 + (x-1)^2 = x^2->x = (n^2+1)/2
2.n是偶数,b=x-2->n^2 + (x-2)^2 = x^2->x = (n^2+4)/4
于是可以O(1)求出答案

一道纯数学题,当给你一条边时,你把它当做为直角边,就可以利用上面的公式,求出另外两条边;

代码:

#include<bits/stdc++.h>
#define LL long long
using namespace std;
int main(){LL n;scanf("%lld",&n);LL b,c;if(n&1){//奇数c=(n*n-1)/2;b=c+1;}else{b=(n*n)/4+1;c=b-2;}if(b==0||c==0) cout<<"-1"<<endl;else cout<<c<<" "<<b<<endl;return 0;
}

牛客练习赛51(C题 勾股定理)相关推荐

  1. 牛客练习赛51 C、勾股定理 只一边求另外两边 结论

    链接:https://ac.nowcoder.com/acm/contest/1083/C 来源:牛客网 勾股定理 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语 ...

  2. 牛客练习赛51 C:勾股定理(勾股数)

    [题目] 给出直角三角形其中一条边的长度n,你的任务是构造剩下的两条边,使这三条边能构成一个直角三角形. [代码] int main() {ll n,b,c; scanf("%lld&quo ...

  3. 牛客练习赛51 C 勾股定理

    题意: 给出一个数n, 求出b和c, 使得n,b,c能构成直角三角形.      n,b,c均为整数, 0≤n≤1e9,1≤b,c≤1e18 思路: 没想到竟然用打表能找到一些规律.此题打表后就能发现 ...

  4. 牛客练习赛51 C 勾股定理 (结论题)

    大致题意 给一个 n (1<=n<=1e9) ,求其组成直角三角形的另外两条边,输出任意一组即可. 思路 结论题 除了 1,2 没用答案,其余的所有正整数满足以下勾股数结论. 可以记忆一下 ...

  5. 牛客练习赛 25 E题 定向 【桥 + 思维】 无向图定方向变强连通图

    传送门 题意: 给定一个无向图, 然后你要给这幅图每条边加上一个方向, 使得这个图是有向图强连通 思路: 关键在于如何判断无解的情况, 如果能保证当前的图有解, 那么直接dfs一下就可以出答案. 仔细 ...

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

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

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

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

  8. 牛客练习赛29 题解

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

  9. 2021牛客练习赛90

    2021牛客练习赛90 B.寒冬信使 C.盾与战锤 B.寒冬信使 题目链接:https://ac.nowcoder.com/acm/contest/11180/B code: #include< ...

最新文章

  1. javascript的Math对象和全局函数
  2. 如何验证php7安装成功_linux安装php7的方法详解
  3. 无线渗透--wifiphisher之wifi钓鱼获取wifi密码
  4. dart参数传方法_为 JavaScript 开发人员准备的 Dart 参考教程
  5. 035_vue脚手架
  6. mysql 1366in_如何实战解决mysql#1366错误
  7. mysql忘记设置用户_MySQL数据库为用户设置密码,Mysql修改密码。Mysql忘记密码解决方法...
  8. docker进阶-搭建私有企业级镜像仓库Harbor
  9. php邮件发送tp,在Thinkphp3.2 中使用PHPMailer 发送邮件
  10. Heu OJ 解题报告索引
  11. java date truncate_Java DateUtils.truncate方法代码示例
  12. python爬取妹子图片1_利用爬虫爬取清纯妹子图片
  13. STM32正交编码器驱动电机
  14. ST语言和C语言的区别 STC
  15. 思科交换机设置端口 trunk 模式报错
  16. 创新彰显实力,方正璞华又获一项国家发明专利
  17. hdu 1290 (切西瓜问题)
  18. Bootstrap(ui框架)
  19. matlab元胞数组cell添加元素
  20. Createprocess 函数运行出错的原因和解决办法

热门文章

  1. php开发使用predis(thinkphp框架,composer,windows环境练习)
  2. Python画各种爱心
  3. acwing——数学知识(四)Nim游戏
  4. 7-2 求一元二次方程的根
  5. AutoJs学习-实现自动发邮件
  6. 全志T507核心板4路AHD摄像头实现方案-飞凌嵌入式
  7. linux安装pgadmin4--postgresql管理工具
  8. 算法初步——冒泡排序
  9. Cron 表达式详解及最新版本使用
  10. “奇点”临近:2045,人类永生