7-9 大笨钟

news2024/10/7 4:22:18

 

分数 10

全屏浏览题目

切换布局

作者 陈越

单位 浙江大学

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。

下面就请你写个程序,根据当前时间替大笨钟敲钟。

输入格式:

输入第一行按照hh:mm的格式给出当前时间。其中hh是小时,在00到23之间;mm是分钟,在00到59之间。

输出格式:

根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。如果不是敲钟期,则输出:

Only hh:mm.  Too early to Dang.

其中hh:mm是输入的时间。

输入样例1:

19:05

输出样例1:

DangDangDangDangDangDangDangDang

输入样例2:

07:05

输出样例2:

Only 07:05.  Too early to Dang.

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

我的答案:

首先,为了解决这个问题,我们需要确定两个条件:

  1. 当前的时间是否在笨钟的敲钟时间范围内(即12:01至23:59)。
  2. 如果在范围内,我们需要确定笨钟敲几下。

接下来是C语言和C++的实现。

C语言实现:

#include <stdio.h>

int main() {
    int hh, mm;
    scanf("%d:%d", &hh, &mm);

    if (hh < 12 || (hh == 12 && mm == 0)) {
        printf("Only %02d:%02d.  Too early to Dang.\n", hh, mm);
    } else {
        if (mm > 0) hh++; // 如果分钟大于0,则钟声数增加1
        for (int i = 12; i < hh; i++) {
            printf("Dang");
        }
    }
    return 0;
}

C++:

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    int hh, mm;
    char ch;
    cin >> hh >> ch >> mm;

    if (hh < 12 || (hh == 12 && mm == 0)) {
        cout << "Only " << setw(2) << setfill('0') << hh << ":" << setw(2) << setfill('0') << mm << ".  Too early to Dang." << endl;
    } else {
        if (mm > 0) hh++; // 如果分钟大于0,则钟声数增加1
        for (int i = 12; i < hh; i++) {
            cout << "Dang";
        }
    }
    return 0;
}

总结:

从这道题目“大笨钟”中,我们可以学习到以下几点:

1. **字符串处理**:通过对输入字符串的处理,我们可以提取和转换时间数据。

2. **条件逻辑**:根据题目的描述,我们需要判断当前时间是否在特定的时间范围内,以决定是敲钟还是输出一个特定的消息。

3. **循环**:题目要求输出“Dang”多次,这需要用到循环。

4. **格式化输出**:题目中的某些输出格式要求可以使用标准库中的格式化工具,如`setw`和`setfill`,来进行处理。虽然这道题目的解答中并没有使用到,但知道这些工具的存在和如何使用它们是有帮助的。

5. **问题分解**:解决这个问题需要将其分解为几个较小的子问题,如:
   - 如何从字符串中解析出小时和分钟?
   - 如何判断当前时间是否在敲钟的时间范围内?
   - 如何决定敲多少下钟?

6. **实际应用**:虽然这是一个编程练习题,但它模仿了现实生活中的一个场景。通过这样的题目,我们可以了解如何使用编程来模拟或解决实际生活中的问题。

7. **细节注意**:例如,要确保正确地处理分钟数,因为即使已经超过了某个整点,钟声的次数仍然会增加。

总之,这道题目提供了对字符串处理、条件逻辑和循环的实践,同时也展示了如何将现实生活的场景转化为编程问题。

学到了什么新东西?

`#include <iomanip>` 是 C++ 标准库的一个头文件,它提供了一系列的输入/输出操作符,用于格式化I/O操作。使用这个头文件,你可以更方便地控制输出的格式,如设置宽度、填充、精度、数字的基数格式等。

这里是该头文件中一些常用的操作符和它们的描述:

1. **setw(int)**:设置输出字段宽度。
   ```cpp
   cout << setw(5) << 123;  // 输出:"  123"
   ```

2. **setfill(char)**:设置填充字符。
   ```cpp
   cout << setw(5) << setfill('0') << 123;  // 输出:"00123"
   ```

3. **setprecision(int)**:设置浮点数的输出精度。
   ```cpp
   cout << setprecision(3) << 3.14159;  // 输出:"3.14"
   ```

4. **fixed**:使浮点数以固定小数位数形式输出。
   ```cpp
   cout << fixed << setprecision(3) << 3.14159;  // 输出:"3.142"
   ```

5. **showpoint**:总是显示小数点。

6. **showpos**:正数前面显示`+`号。

7. **left/right/internal**:控制输出字段中的对齐方式。

在你给出的问题中,`setw`和`setfill`被用于确保小时和分钟总是以两个数字的形式输出,即使它们的值小于10。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/886832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

矢量绘图UI设计软件Sketch mac中文版软件说明

Sketch mac是一款适用于 UI/UX 设计、网页设计、图标制作等领域的矢量绘图软件。 Sketch mac软件特点 1. 简单易用的界面设计&#xff1a;Sketch 的用户界面简洁明了&#xff0c;使得用户可以轻松上手操作&#xff0c;不需要复杂的学习过程。 2. 强大的矢量绘图功能&#xff1a…

什么是网络地址转换 (NAT)

网络地址转换&#xff08;NAT&#xff09;是更改源和目标 IP 地址和端口的过程&#xff0c;地址转换减少了对 IPv4 公共地址的需求&#xff0c;并隐藏了专用网络地址范围&#xff0c;该过程通常由路由器或防火墙完成。 NAT是如何工作的 NAT 允许单个设备&#xff08;如路由器…

计算机视觉掩模区域与二值图像

掩模区域 在图像处理中&#xff0c;我们经常需要对图像中的某些特定区域进行操作&#xff0c;例如对某个区域进行滤波、变换、裁剪或者其他处理。为了实现这些操作&#xff0c;我们需要明确指定这些区域&#xff0c;这就是掩模区域的作用。 掩模区域通常由一个二值图像表示&…

Centos 防火墙命令

查看防火墙状态 systemctl status firewalld.service 或者 firewall-cmd --state 开启防火墙 单次开启防火墙 systemctl start firewalld.service 开机自启动防火墙 systemctl enable firewalld.service 重启防火墙 systemctl restart firewalld.service 防火墙设置开…

配置使用Gitee账号认证登录Grafana

三方社会化身份源 集成gitee第三方登录 第三方登录的原理 所谓第三方登录&#xff0c;实质就是 OAuth 授权。用户想要登录 A 网站&#xff0c;A 网站让用户提供第三方网站的数据&#xff0c;证明自己的身份。获取第三方网站的身份数据&#xff0c;就需要 OAuth 授权。 举例来…

【Datawhale 科大讯飞-基于论文摘要的文本分类与关键词抽取挑战赛】机器学习方法baseline

内容 科大讯飞AI开发者大赛NLP赛道题目&#xff1a; 基于论文摘要的文本分类与关键词抽取挑战赛 任务&#xff1a; 1.机器通过对论文摘要等信息的理解&#xff0c;判断该论文是否属于医学领域的文献。 2.提取出该论文关键词。 数据集的获取 训练集&#xff1a; 这里读取tit…

ITK-SNAP医学影像处理软件无法打开问题

安装ITK-SNAP后成功打开了一次之后再次打开就一直显示无法打开的提示, 在检查全路径为英文和其他版本的ITK-SNAP仍然无法打开&#xff1b; 解决办法&#xff1a; 根据报错的提示的路径&#xff0c;找到UserPreferences.xml 文件&#xff0c;将xml文件删掉&#xff0c;然后就可以…

关于视频监控平台EasyCVR视频汇聚平台建设“明厨亮灶”具体实施方案以及应用

一、方案背景 近几年来&#xff0c;餐饮行业的食品安全、食品卫生等新闻频频发生&#xff0c;比如某火锅店、某网红奶茶&#xff0c;食材以次充好、后厨卫生被爆堪忧&#xff0c;种种问题引起大众关注和热议。这些负面新闻不仅让餐饮门店的品牌口碑暴跌&#xff0c;附带的连锁…

Mac安装opencv后无法导入cv2的解决方法

前提条件&#xff1a;以下两个插件安装成功 pip install opencv-python pip install --user opencv-contrib-python 注&#xff1a;直接用pip install opencv-contrib-python如果报错&#xff0c;就加上“–user" 第一步&#xff1a; 设置–添加python解释器 第二步&am…

jsx 案例练习 评论区渲染

练习案例源码地址 git源码后&#xff0c;安装依赖&#xff0c;npm install或者yarn 然后 npm run start 运行起来 会有简易B站评论模板出现 案例目标&#xff1a;完成 评论数据渲染、tab内容渲染、评论列表点赞和点踩 三个视图渲染 1、评论数据渲染 找数据&#xff0c;li…

PINN神经网络源代码解析(pyTorch)

参考文献 PINN(Physics-informed Neural Networks)的原理部分可参见https://maziarraissi.github.io/PINNs/ 考虑Burgers方程&#xff0c;如下图所示&#xff0c;初始时刻u符合sin分布&#xff0c;随着时间推移在x0处发生间断. 这是一个经典问题&#xff0c;可使用pytorch通过…

系统架构设计师-信息安全技术(1)

目录 一、信息安全基础 1、信息安全五要素 2、网络安全漏洞 3、网络安全威胁 4、安全措施的目标 二、信息加解密技术 1、对称加密 2、非对称加密 3、加密算法对比 三、密钥管理技术 1、数字证书 2、PKI公钥体系 四、访问控制技术 1、访问控制基本模型 2、访问控制的实现技术…

群晖安装 frpc

群晖安装 frpc 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 写该文章之前&#xff0c; 我尝试过使用 “任务计划” 设置开机启动 frpc&#xff0c; 但是失败了。 最后尝试使用 docker 开机启动 frpc 才成功&#xff0c; 因此本文主要介绍使用 docker …

爬虫逆向实战(十三)--某课网登录

一、数据接口分析 主页地址&#xff1a;某课网 1、抓包 通过抓包可以发现登录接口是user/login 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现有一个password加密参数&#xff0c;还有一个browser_key这个可以写死不需要关心 请求头…

Lodash——使用与实例

1. 简介 Lodash是一个一致性、模块化、高性能的JavaScript实用库。Lodash通过降低array、number、objects、string等等的使用难度从而让JavaScript变得简单。Lodash的模块方法&#xff0c;非常适用于&#xff1a; 遍历array、object 和 string对值进行操作和检测创建符合功能的…

注册中心Eureka和Nacos,以及负载均衡Ribbon

1.初识微服务 1.1.什么是微服务 微服务&#xff0c;就是把服务拆分成为若干个服务&#xff0c;降低服务之间的耦合度&#xff0c;提供服务的独立性和灵活性。做到高内聚&#xff0c;低耦合。 1.2.单体架构和微服务架构的区别&#xff1a; 单体架构&#xff1a;简单方便&#…

【干货】通过Bootstrap框架添加下拉框到导航栏

最终效果展示详细步骤及代码1、获取相关代码2、引入CSS和JavaScript文件3、全部代码 最终效果展示 详细步骤及代码 1、获取相关代码 https://v3.bootcss.com/components/#navbar-default 本文用到代码为 <nav class"navbar navbar-default"><div class&…

第六阶|见道明心的笔墨(上)从书法之美到生活之美——林曦老师的线上直播书法课

如果你有需要&#xff0c;可以找我的&#xff0c;我这边有老师的所有课程 如果你有需要&#xff0c;可以找我的&#xff0c;我这边有老师的所有课程

零售行业供应链管理核心KPI指标(二) – 线上订单履行周期

一般品牌零售商有一个大的渠道就是全国连锁的商超、大卖场&#xff0c;非常重要的渠道&#xff0c;要去铺货。同类型的产品都在竞争这个大渠道&#xff0c;但商超、大卖场在这类产品的容量是有限的&#xff0c;所以各个品牌就要去争夺整个容量&#xff0c;看谁在有限的容量里占…

最小二乘线性拟合FC(SCL计算源代码)

采用PLC等微控制器采集一些线性传感器数据时&#xff0c;如果已知线性关系&#xff0c;我们可以利用直线方程求解。具体的算法公式和讲解大家可以查看下面相关文章&#xff1a; PLC模拟量采集算法数学基础&#xff08;线性传感器&#xff09;_plc3秒采集一次模拟量_RXXW_Dor的…