当前位置: 首页 > news >正文

D. Pythagorean Triples 题解

思路

由勾股定理和题目中的要求对应的两个方程可以得到一个等式:

c方-b方 = c + b

在题目要求下可以知道 c = b+1

拿这个式子去打表,找符合这个式子的直角三角形

import math
for i in range(1,1001):a = ib = i+1a = a*ab = b*bc = b-ad = math.sqrt(c)d = int(d)if d*d == c:print(f"{d} {i} {i+1}")
# 3 4 5
# 5 12 13
# 7 24 25
# 9 40 41
# 11 60 61
# 13 84 85
# 15 112 113
# 17 144 145
# 19 180 181
# 21 220 221
# 23 264 265
# 25 312 313
# 27 364 365
# 29 420 421
# 31 480 481
# 33 544 545
# 35 612 613
# 37 684 685
# 39 760 761
# 41 840 841
# 43 924 925

从打表结果可以发现,符合要求的三角形满足:

1、a是奇数,且除了1以外的每个正奇数都有对应的符合要求的直角三角形

2、c = b+1

3、b = (a*a-1)/2

因为题目中是求1-n范围中有多少个符合要求的三角形,所以从n开始倒着找,找到的第一个符合要求的三角形的  a/2  即为答案

AC代码 

为什么从python变成c艹了,因为用python交了超时

#include<bits/stdc++.h>
using namespace std;#define int long longint n,t,z,m;void solve(){cin>>n;if(n<5){cout<<0<<'\n';return ;}for(int i=n;i>0;--i){z = (i-1)*2+1;t = sqrt(z);if(t*t==z && t&1){cout<<(t>>1)<<'\n';return ;}}
}signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int _=1;cin>>_;while(_--){solve();}    return 0;
}

http://www.xdnf.cn/news/287461.html

相关文章:

  • 手机打电话时由对方DTMF响应切换多级IVR语音应答(一)
  • \documentclass[lettersize,journal]{IEEEtran}什么意思
  • 机器人强化学习入门学习笔记(二)
  • DeepSeek-Prover-V2:数学定理证明领域的新突破
  • Dify网页版 + vllm + Qwen
  • Matlab自学笔记五十三:保存save和载入load
  • 杨校老师竞赛课之C++备战蓝桥杯初级组省赛
  • Python爬虫实战:获取优美图库各类高清图片,为用户提供设计素材
  • 洛谷 P9007 [入门赛 #9] 最澄澈的空与海 (Hard Version)
  • 【从零开始学习微服务 | 第一篇】单体项目到微服务拆分实践
  • 本地MySQL连接hive
  • ASP.NET Core 请求限速的ActionFilter
  • 算法中的数学:质数(素数)
  • 30天通过软考高项-第十一天
  • CodeBlocks25配置wxWidgets3.2
  • 004-nlohmann/json 快速认识-C++开源库108杰
  • 地埋式燃气泄漏检测装置与地下井室可燃气体检测装置有什么区别
  • 专业课复习笔记 4
  • Vue中的过滤器参数:灵活处理文本格式化
  • 5月5日日记
  • 基于 HTML5 Canvas 实现图片旋转与下载功能
  • linux tar命令详解。压缩格式对比
  • Java IO流核心处理方式详解
  • 论高并发下的高可用
  • LeetCode 热题 100 46. 全排列
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.1 描述性统计分析(均值/方差/分位数计算)
  • 代码随想录算法训练营Day45
  • 一个电商场景串联23种设计模式:创建型、结构型和行为型
  • Cordova开发自定义插件的方法
  • 多语言笔记系列:Polyglot Notebooks 中使用 xUnit 单元测试