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

信奥题解:勾股数计算中的浮点数精度问题

来源:GESP C++ 二级模拟题

本文给出官方参考答案的详细解析,包括每一部分的功能和关键点,以及与浮点数精度相关的问题的分析。

题目描述

勾股数是很有趣的数学概念。如果三个正整数a 、b 、c ,满足 a 2 + b 2 = c 2 a^2 + b^2 = c^2 a2+b2=c2 ,而且1 ≤ a ≤ b ≤ c ,我们就将a 、b 、c组成的三元组(a, b, c)称为勾股数。你能通过编程,数数有多少组勾股数,能够满足c ≤ n吗?

输入描述
输入一行,包含一个正整数n 。约定 1 ≤ n ≤ 1000。

输出描述
输出一行,包含一个整数C ,表示有C组满足条件的勾股数。

样例输入1

5

样例输出1

1

样例解释1
满足c ≤ 5 的勾股数只有一组,即 (3,4,5)。

样例输入 2

13

样例输出 2

3

样例解释 2
满足c ≤ 13 的勾股数有 3 组,即 (3,4,5) 、(6,8, 10) 和 (5, 12, 13)。

代码实现

下面是官方给出的参考答案:

#include <iostream>
#include <cmath>using namespace std;int main() {int n, cnt = 0;cin >> n;for (int a = 1; a <= n; a++)for (int b = a; b <= n; b++) {int c2 = a * a + b * b;int c = (int)(sqrt(c2) + 0.5);if (c > n)break;if (c * c == c2)cnt++;}cout << cnt << endl;return 0;
}

代码解析

以下是对这段代码的详细解析,包括每一部分的功能和关键点,以及与浮点数精度相关的问题的分析。

代码功能

这段代码用于统计满足以下条件的毕达哥拉斯三元组 ((a, b, c)) 的数量:

  1. a , b , c a, b, c a,b,c 是正整数。
  2. a ≤ b ≤ c a \leq b \leq c abc
  3. a 2 + b 2 = c 2 a^2 + b^2 = c^2 a2+b2=c2
  4. c ≤ n
http://www.lryc.cn/news/505465.html

相关文章:

  • 重生之我在学Vue--第2天 Vue 3 Composition API 与响应式系统
  • 【AI知识】逻辑回归介绍+ 做二分类任务的实例(代码可视化)
  • Mysql 笔记2 emp dept HRs
  • MySQL和Oracle的区别
  • 实验12 C语言连接和操作MySQL数据库
  • 09篇--图片的水印添加(掩膜的运用)
  • sql-labs(21-25)
  • CTF知识集-命令执行
  • 基于米尔全志T527开发板的OpenCV进行手势识别方案
  • Htpp中web通讯发送post(上传文件)、get请求
  • 【论文阅读笔记】HunyuanVideo: A Systematic Framework For Large Video Generative Models
  • SpringBoot的事务钩子函数
  • 源码安装PHP-7.2.19
  • UE5制作伤害浮动数字
  • 学习日志024--opencv中处理轮廓的函数
  • (2024年最新)Linux(Ubuntu) 中配置静态IP(包含解决每次重启后配置文件失效问题)
  • DPDK用户态协议栈-TCP Posix API 2
  • [IT项目管理]项目时间管理(本章节3w字爆肝)
  • 【python因果库实战5】使用银行营销数据集研究营销决策的效果5
  • 【Qt】QWidget中的常见属性及其功能(二)
  • 9 OOM和JVM退出。OOM后JVM一定会退出吗?
  • 学习笔记070——Java中【泛型】和【枚举】
  • 【工具变量】碳排放市场交易数据(2013-2023年)
  • 【视频生成模型】——Hunyuan-video 论文及代码讲解和实操
  • 基线检查:Windows安全基线.【手动 || 自动】
  • uniapp跨端适配—条件编译
  • 【Java基础面试题013】Java中静态方法和实例方法的区别是是么?
  • C语言入门(一):A + B _ 基础输入输出
  • Vue日历组件FullCalendar使用方法
  • TinyML在OBD-II边缘设备上燃油类型分类的实现与优化