2015浙工大校赛-Problem C: 三角—— 费马大定理+勾股数
Posted lfri
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2015浙工大校赛-Problem C: 三角—— 费马大定理+勾股数相关的知识,希望对你有一定的参考价值。
题目
有一个直角三角形三边为 A,B,C 三个整数。已知 C 为最长边长,求一组B,C,使得B和C最接近。
(题目链接)
分析
打表找规律。
或者直接一点的枚举 $C-B$ 的值。(既然枚举 B 不现实,枚举差值是一种很好的思路啊,学习了 %%% 博客)
或者使用费马大定理(的一小部分),
当 $A$ 为奇数时($A > 1$),存在 $C-B = 1$ 的整数解使得 $A^2 + B^2 = C^2$;
当 $A$ 为偶数时 ($A > 2$),存在 $C-B = 2$ 的整数解使得 $A^2 + B^2 = C^2$.
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll a, b, c; int main() while(scanf("%lld", &a) == 1) if(a & 1) b = (a * a - 1) / 2; c = b + 1; else b = (a * a - 4) / 4; c = b + 2; printf("%lld %lld\n", b, c); return 0;
参考链接:
1. https://blog.csdn.net/david_jett/article/details/44750687
2. https://blog.csdn.net/Xylon_/article/details/82107186
以上是关于2015浙工大校赛-Problem C: 三角—— 费马大定理+勾股数的主要内容,如果未能解决你的问题,请参考以下文章
[2017浙工大之江学院决赛 E] qwb和李主席(折半枚举,二分)
[2017浙工大之江学院决赛 M] qwb与二叉树(记忆化搜索,卡特兰数)
2017年浙工大迎新赛热身赛 J Forever97与寄信 数论/素数/Codeforces Round #382 (Div. 2) D. Taxes