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

news/2024/12/15 13:11:35/

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

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

题目描述

勾股数是很有趣的数学概念。如果三个正整数a 、b 、c ,满足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 c \leq n cn,其中 n n n 是用户输入的最大值。

输出结果为满足上述条件的三元组的总数量。

代码结构和解析

1. 输入和初始化
int n;
int cnt = 0;
cin >> n;
  • 功能:从标准输入读取整数 n n n,表示三元组中

http://www.ppmy.cn/news/1555300.html

相关文章

队列+宽搜_429. N 叉树的层序遍历_二叉树最大宽度

429. N 叉树的层序遍历 定义一个队列q&#xff0c;将一层的节点入队&#xff0c;并记录节点个数。根据节点的个数&#xff0c;出队列&#xff0c;并将其孩子入队列。出完队列&#xff0c;队列当前剩余节点的个数就是下次出队列的次数。直到队列为空 /* // Definition for a Nod…

YunSDR通信小课堂-17

7.5 接收端搭建 全数字接收机是采用独立振荡于固定频率的高稳定度时钟&#xff0c; 对接收机收到的信号进行采样和解调处理、 载波相位误差和符号同步定时误差的消除以及信号的判决等工作全部由采样后的数字信号处理器来完成。 这种方式不需要将载波误差信号反馈到混频器进行调…

大模型在企业数智化转型中可以做哪些事情?

在数字化浪潮的推动下&#xff0c;企业数智化转型已成为不可逆转的趋势。作为人工智能技术的集大成者&#xff0c;大模型以其强大的数据处理能力、深度学习能力及广泛的应用场景&#xff0c;正逐步成为企业数智化转型的核心驱动力。 大模型&#xff0c;简而言之是指拥有海量参数…

httpsok-v1.18.0-SSL证书自动续期

&#x1f525;httpsok-v1.18.0-SSL证书自动续期 介绍 httpsok 是一个便捷的 HTTPS 证书自动续期工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty、Apache 等服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分…

[Unity] AppLovin Max接入Native 广告 IOS篇

NativeIOS构建流程 &#xff08;接入之前备份之前打包得Xcode工程&#xff09; 下载资源 1.将以下文件放入Unity Assets->Plugins->IOS文件夹下 2.Unity更新max版本至12.4.1 UnityPlugin 6.4.3以上&#xff08;很重要&#xff09; 3.NativeSDKManager.CS根据以下附…

微服务篇-深入了解 Elasticsearch DSL 查询和 RestClient 查询、数据聚合(Bucket 聚合、带条件聚合、Metric 聚合)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 DSL 查询 1.1 叶子查询 1.1.1 全文检索查询 1.1.2 精确查询 1.2 复合查询 1.2.1 bool 查询 1.3 排序 1.4 分页 1.4.1 深度分页 1.5 高亮 1.5.1 实现高亮 2.0 Rest…

汽车租赁系统数据库 E-R 图设计

文章目录 汽车租赁系统数据库 E-R 图设计一、实体&#xff08;Entities&#xff09;二、实体间关系&#xff08;Relationships&#xff09;三、数据表&#xff08;Tables&#xff09; 汽车租赁系统数据库 E-R 图设计 一、实体&#xff08;Entities&#xff09; 用户&#xff0…

[实战]MySQL时间多了一秒

场景 同时保存一条数据在MySQL和Redis中&#xff0c;JAVA系统中显示Redis和MySQL数据差了一秒&#xff0c;即MySQL比Redis中快了一秒。 复现 我们系统中MySQL的时间类型用的是timestamp&#xff0c;问题是一样的。 CREATE TABLE test_date (id int(11) NOT NULL AUTO_INCRE…