蓝桥杯每日真题 - 第15天

embedded/2024/11/18 1:06:01/

题目:(钟表)

题目描述(13届 C&C++ B组B题)

解题思路:

  1. 理解钟表指针的运动

    • 秒针每分钟转一圈,即每秒转6度。

    • 分针每小时转一圈,即每分钟转6度。

    • 时针每12小时转一圈,即每分钟转0.5度。

  2. 计算角度

    • 秒针的角度 S=6m(其中 m 是秒)。

    • 分针的角度 M=6f+0.1m(其中 f 是分)。

    • 时针的角度 H=30s+0.5f+0.0083m(其中 s 是小时)。

  3. 计算夹角

    • 分针和时针的夹角 A=∣H−M∣。

    • 分针和秒针的夹角 B=∣M−S∣。

  4. 条件判断

    • 需要满足 A=2B。

  5. 遍历时间

    • 从 s=0 到 s=6,ff 从 0 到 59,mm 从 0 到 59,检查每个时间点是否满足条件。

代码实现(C语言):

#include <stdio.h>
#include <stdlib.h>int main()
{int h = 0, m = 0, s = 0; // 时、分、秒double A, B, H, M, S;    // A、B 表示题目中的夹角,H、M、S 表示时针、分针、秒针的度数while (h < 6) // 时针只需遍历 0~6{s++; // 秒针每秒加一if (s == 60) // 秒针转一圈{s = 0;m++;}if (m == 60) // 分针转一圈{m = 0;h++;}// 计算秒针、分针、时针当前的位置(以度数为单位)S = s * 6.0;                           // 秒针每秒走6度M = (m + s / 60.0) * 6.0;              // 分针每分钟走6度,并加上秒针带来的细微变化H = (h + m / 60.0 + s / 3600.0) * 30.0; // 时针每小时走30度,并加上分针和秒针带来的变化// 计算时针与分针的夹角 AA = (H > M) ? (H - M) : (M - H);if (A > 180) A = 360 - A; // 确保 A 在 [0, 180] 范围内// 计算分针与秒针的夹角 BB = (S > M) ? (S - M) : (M - S);if (B > 180) B = 360 - B; // 确保 B 在 [0, 180] 范围内// 判断是否满足 A = 2Bif (A == 2 * B){// 找到答案后直接跳出循环break;}}// 输出时、分、秒printf("%d %d %d\n", h, m, s);return 0;
}

得到运行结果:

代码分析: 

变量说明

  • h, m, s:分别表示小时、分钟、秒的整数值。

  • H, M, S:分别表示时针、分针、秒针所指向的具体角度(度数)。

  • A, B:分别表示时针与分针的夹角、分针与秒针的夹角。

角度计算

  • 秒针的角度[ S = s \times 6.0 ]。秒针每秒钟走 6 度。

  • 分针的角度[ M = (m + \frac{s}{60.0}) \times 6.0 ]。分针每分钟走 6 度,且秒针的细微变化会影响分针的位置。

  • 时针的角度[ H = (h + \frac{m}{60.0} + \frac{s}{3600.0}) \times 30.0 ]。时针每小时走 30 度,同时分针和秒针也会微调时针的位置。

夹角计算

  • 两个指针的夹角:是大角减小角,如果夹角大于 180 度,取补角。

  • 时针与分针夹角 A
    [ A = (H > M) ? (H - M) : (M - H); ]
    [ \text{if } A > 180 \text{ then } A = 360 - A; ]

  • 分针与秒针夹角 B
    [ B = (S > M) ? (S - M) : (M - S); ]
    [ \text{if } B > 180 \text{ then } B = 360 - B; ]

判断条件

  • 只需判断是否满足 ( A = 2B )。

循环终止

  • 当找到符合条件的时、分、秒时,用 break 终止循环,输出结果即可。

难度分析

⭐️⭐️⭐️

总结

这段代码通过模拟时钟的运行,计算出在一天中的某个时刻,时针和分针的夹角是分针和秒针夹角的两倍。这个问题考察了对时间的理解和指针运动的计算,以及如何将这些计算转化为代码实现。


http://www.ppmy.cn/embedded/138395.html

相关文章

NotePad++中安装XML Tools插件

一、概述 作为开发人员&#xff0c;日常开发中大部的数据是标准的json格式&#xff0c;但是对于一些古老的应用&#xff0c;例如webservice接口&#xff0c;由于其响应结果是xml&#xff0c;那么我们拿到xml格式的数据后&#xff0c;常常会对其进行格式化&#xff0c;以便阅读。…

第23课-C++-红黑树的插入与旋转

&#x1f307;前言 红黑树是一种自平衡的二叉搜索树&#xff0c;因其出色的性能&#xff0c;广泛应用于实际中。Linux 内核中的 CFS 调度器便是一个使用红黑树的例子&#xff0c;这足以说明它的重要性。红黑树的实现通过红黑两种颜色的控制来维持平衡&#xff0c;并在必要时使…

ollama+springboot ai+vue+elementUI整合

1. 下载安装ollama (1) 官网下载地址&#xff1a;https://github.com/ollama/ollama 这里以window版本为主&#xff0c;下载链接为&#xff1a;https://ollama.com/download/OllamaSetup.exe。 安装完毕后&#xff0c;桌面小图标有一个小图标&#xff0c;表示已安装成功&…

docker安装宝塔,Mac也可以使用宝塔搭建开发环境了

宝塔没有mac版本&#xff0c;如果想在Mac本地搭建宝塔环境做php开发的&#xff0c;可以使用docker的方式部署 新建一个目录baota&#xff0c;目录下新建文件docker-compose.yml services:dzhbt-ubuntu:image: registry.cn-heyuan.aliyuncs.com/gzdzh/baota:dzhbt-ubuntu-arm-l…

如果https连接的建立是通过cdn分为两段式的连接,而不是直接从源客户端到服务器端握手协商的连接,那么传输内容可信吗?cdn提供商不会作恶吗

在使用 CDN&#xff08;内容分发网络&#xff09;时&#xff0c;HTTPS 连接的确是分为两段式的&#xff0c;但这并不意味着传输内容不可信。以下是关于信任和安全性的几个关键点&#xff1a; 数据加密 端到端加密&#xff1a;在 CDN 代理的情况下&#xff0c;客户端与 CDN 之间…

【HAProxy10】企业级反向代理HAProxy高级功能之四层负载与Https 实现

HAProxy 高级功能 介绍 HAProxy 高级配置及实用案例 HAProxy 四层负载 针对除HTTP以外的TCP协议应用服务访问的应用场景 MySQL Redis Memcached RabbitMQ 问题: 后端服务器到底是与haproxy还是和客户端建立三次握手呢? 四层负载示例 注意&#xff1a;如果使用frontend和…

Git 分⽀规范 Git Flow 模型

前言 GitFlow 是一种流行的 Git 分支管理策略&#xff0c;由 Vincent Driessen 在 2010 年提出。它提供了一种结构化的方法来管理项目的开发、发布和维护&#xff0c;特别适合大型和复杂的项目。GitFlow 定义了一套明确的分支模型和工作流程&#xff0c;使得团队成员可以更有效…

三、模板与配置(下)

三、模板与配置 8、WXSS模板样式-全局样式和局部样式 类型说明适用情景注意点全局样式定义在 app.wxss 中的样式&#xff0c;作用于每一个页面。当有一些通用的样式规则需要应用于整个小程序时&#xff0c;比如全局的字体大小、颜色、布局等。全局样式可能会被局部样式覆盖&a…