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

浙工大race 线性基

浙工大race 线性基

2017年浙工大迎新赛热身赛 Lcayun日常之赏月易错特判