B3838 [GESP202306 一级] 时间规划

题目描述

小明在为自己规划学习时间。现在他想知道两个时刻之间有多少分钟,你能通过编程帮他做到吗?

输入格式

输入 44 行,第一行为开始时刻的小时,第二行为开始时刻的分钟,第三行为结束时刻的小时,第四行为结束时刻的分钟。输入保证两个时刻是同一天,开始时刻一定在结束时刻之前。时刻使用 2424 小时制,即小时在 00 到 2323 之间,分钟在 00 到 5959 之间。

输出格式

输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。

输入输出样例

输入 

9
5
9
6

输出 

1

输入 

9
5
10
0

输出 

55

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int sh,sm,eh,em,m=0;
	cin>>sh>>sm>>eh>>em;
	m=(eh-sh)*60+em-sm;
	cout<<m;
 	return 0;
}

这段代码是一个简单的C++程序,用于计算两个时间点之间的时间差(以分钟为单位)。下面是代码的详细解释:

  1. 头文件引用#include<bits/stdc++.h> 引入了所有标准库头文件,方便使用各种功能。虽然在实际开发中并不推荐这样做,但在编程竞赛中为了简化代码经常使用。

  2. 命名空间using namespace std; 使得程序可以直接使用标准库中的对象和函数,而无需加上 std:: 前缀。

  3. 主函数int main() 是程序的入口。

  4. 变量声明

    • int sh, sm, eh, em;:这些变量分别代表开始时间(小时和分钟)和结束时间(小时和分钟)。
    • int m=0;:用于保存两个时间点之间的时间差(以分钟为单位)。
  5. 输入cin >> sh >> sm >> eh >> em; 读取用户输入的四个整数,分别表示开始时间的小时和分钟,以及结束时间的小时和分钟。

  6. 计算时间差

    • m = (eh - sh) * 60 + em - sm; 计算方法是将结束时间的小时转换为分钟并加上结束分钟,再减去开始时间的分钟。
  7. 输出结果cout << m; 将计算得到的时间差输出。

  8. 返回值return 0; 表示程序正常结束。

注意事项:

  • 这个程序假设输入的时间是有效的,即开始时间在结束时间之前。
  • 计算的时间差结果是以分钟为单位。
  • 如果时间的输入格式不符合预期(比如小时超出正常范围),程序不会处理错误。

示例输入输出:

假设输入:

 

复制代码

10 30 12 15

程序将输出:

 

复制代码

105

这表示从10:30到12:15之间有105分钟的时间差。

 

 

<think>好的,我现在需要帮用户将提供的GESP二级题目按照题目类型进行分类,特别是那些有共同模板和相似代码的题目。首先,我需要仔细阅读每个题目的编号和名称,分析它们可能的考查内容和解题方法。 首先,题目列表里有多个涉及“画”的题目,比如B3844画正方形、B3837画三角形、B3865小杨的X字矩阵、B3924小杨的H字矩阵、B3955小杨的日字矩阵、B4037小杨的N字矩阵以及B4259等差矩阵。这些题目看起来都是需要根据某种规律输出特定字符组成的图形,比如矩阵或几何形状。这类题目通常需要使用循环结构控制输出的行和列,根据条件判断在特定位置打印字符,其他位置填充空格或其他字符。所以这类题目应该归为“字符图案绘制类”。 接下来,题目中有几个涉及数学计算的题目。例如B3845勾股数、B3836百鸡问题、B3840找素数、B3841自幂数判断、B4002平方之和、B4007计数、B4036数位之和、B4064寻找数字、B4065数位和。这些题目可能需要用到数学公式、循环遍历和条件判断。比如勾股数需要寻找满足a² + b² = c²的三元组;百鸡问题涉及不定方程求解;找素数和自幂数判断需要遍历数字并检查特定条件;平方之和可能涉及平方数的计算;计数和数位和则与数字的各位处理相关。这类题目可以归为“数学计算与数论类”。 还有一些题目涉及特定的算法或逻辑,比如B3866数字黑洞,可能需要处理数字的各位数排序和减法操作,形成循环直到达到特定条件;B3923小杨做题可能涉及模拟或递推;B3954乘法问题可能涉及数值计算或动态规划;B4260时间跨越可能涉及日期时间计算和差值处理。这些题目可能需要更具体的算法或逻辑处理,但暂时不确定是否有共同模板,可能需要进一步分析。不过根据用户要求,按共同模板和代码相似性分类,可能暂时归为“特殊算法与逻辑处理类”。 现在需要验证每个分类下的题目是否确实有相似的解题模板。例如,字符绘制类的题目,无论画的是X、H、日字还是N字,基本都需要双重循环遍历行和列,根据行列索引决定输出字符,因此代码结构相似,只是判断条件不同。数学计算类的题目,如找素数、自幂数、勾股数,都需要遍历数字,检查条件,结构上都是循环加条件判断,可能使用函数封装检查逻辑,代码结构类似。特殊算法类如数字黑洞,可能涉及循环处理数字的各位数重组,直到出现6174,这种处理方式比较独特,但若有多题涉及数位处理,可能归为数学计算类。但B3866和B4065都涉及数位和,可能需要重新分类。 例如,B4036数位之和、B4065数位和、B4064寻找数字都与数字的各位处理相关,可能应归入数学计算类的子类“数位处理”。同样,B3841自幂数判断也需要分解数字的各位计算幂和,属于数位处理。而B3840找素数属于素数筛查,B3845勾股数属于数学公式应用,B3836百鸡问题属于枚举解方程,B4002平方之和可能涉及平方数的组合,B4007计数可能统计满足条件的数字个数。因此数学计算类可细分为数位处理、素数相关、公式应用等,但用户希望按共同模板分类,因此可能合并,因为这些题目在代码结构上都有循环和条件判断,处理方式类似,只是具体条件不同。 可能调整分类,将数位相关的题目归为一类,其他数学题归为另一类。但根据用户需求,尽量按代码相似性分类,可能数位处理和数学计算可以合并,因为它们都涉及循环和条件检查,只是处理的具体数学问题不同,但代码结构相似。 再考虑特殊算法类,如B3866数字黑洞需要多次变换数字,直到满足条件,可能使用循环和字符串或数组处理数位,这类代码结构可能与数位处理类似,但流程更长,可能归入数学计算类下的子类,或者单独分类。根据用户示例,可能统一归为数学计算类。 最后,时间相关的题目如B4260时间跨越,可能涉及日期计算,处理小时和分钟,计算时间差,这类问题可能需要不同的处理方式,比如将时间转换为分钟再进行计算,属于另一类别,但当前列表中只有一题,可能归入特殊算法类。 综上,初步分类如下: 1. 字符图案绘制类:涉及输出特定字符组成的图形,使用循环和条件判断控制输出。 2. 数学计算与数论类:涉及数学公式、数位处理、素数、自幂数、勾股数等,使用循环和条件判断解决问题。 3. 特殊算法与逻辑处理类:涉及较复杂的算法或逻辑,如数字黑洞、时间计算等。 需要检查每个题目是否归类正确: 字符绘制类: - B3844画正方形:输出正方形,可能根据边长循环输出* - B3837画三角形:类似,根据行数输出递增的*号 - B3865小杨的X字矩阵:在矩阵中画X,对角线上输出* - B3924H字矩阵:在特定行和列输出H字符 - B3955日字矩阵:类似,输出日字形边框 - B4037N字矩阵:可能按N的笔画输出字符 - B4259等差矩阵:可能填充等差数列的数字,但如果是字符图案,可能属于此类,否则可能属于数学类。根据题目名称“等差矩阵”,可能是数字填充,但用户提到的是字符矩阵,需要确认。假设是字符排列,归此类。 数学计算类: - B3845勾股数:寻找满足勾股定理的三元组 - B3836百鸡问题:解方程100钱买百鸡 - B3840找素数:找出区间内的素数 - B3841自幂数判断:如阿姆斯特朗数 - B4002平方之和:可能判断某数能否表示为两平方数之和 - B4007计数:统计满足条件的数 - B4036数位之和:计算一个数的各位之和 - B4064寻找数字:可能查找具有特定数位特征的数 - B4065数位和:同上,可能是计算数位和 - B3866数字黑洞:处理数位重组,直到得到6174,属于数位处理,归此类 - B3923小杨做题:可能涉及数学问题,如累加、递推,需看具体内容,假设是数学计算 - B3954乘法问题:可能涉及大数乘法或特定乘法规则,属于数学计算 特殊算法类: - B4260时间跨越:处理时间差计算,可能单独一类,但若只有一题,可能并入数学计算 不过B3954和B3923若涉及数学计算,可能归入数学类。因此,可能将大部分题目归入前两类,特殊算法类可能较少。 因此,最终分类: 字符图案绘制类:B3844、B3837、B3865、B3924、B3955、B4037、B4259 数学计算与数论类:B3845、B3836、B3840、B3841、B4002、B4007、B4036、B4064、B4065、B3866、B3923、B3954 特殊算法与逻辑处理类:B4260 但需要确认是否有其他题目属于特殊算法。例如,B3866数字黑洞可能更复杂,属于数学计算中的数位处理,归入数学类。B4260时间跨越可能单独处理时间,属于另一类。但用户希望按共同模板分类,因此可能将数学计算类再细分: 但根据用户的要求,尽量按代码结构相似性分类。例如,数位处理的题目,如B4036、B4065、B3841、B3866,它们的代码都需要分解数字的各位,进行计算或重组,因此可能有相似的循环和取模运算,归为一类。而素数判断、勾股数、百鸡问题等可能需要不同的循环结构,但都属于数学问题的大类,代码可能使用多重循环和条件判断,结构相似。 综上,可能将题目分为: 1. 字符图案绘制类 2. 数学计算与数论类(包括数位处理、素数、勾股数等) 3. 特殊算法与逻辑处理类(如时间计算) 但可能用户希望更细的分类,例如将数位处理单独分类,但根据用户提供的例子,可能合并。因此最终分类如下: 字符图案绘制类:所有需要输出特定字符排列的题目。 数学计算与数论类:涉及数学公式、数论问题、数位处理等的题目。 特殊算法类:其他需要特定算法处理的题目。 根据这个分类,用户的问题中的各个题目可以归类如下: 字符图案绘制类: - B3844 画正方形 - B3837 画三角形 - B3865 小杨的X字矩阵 - B3924 小杨的H字矩阵 - B3955 小杨的日字矩阵 - B4037 小杨的N字矩阵 - B4259 等差矩阵 数学计算与数论类: - B3845 勾股数 - B3836 百鸡问题 - B3840 找素数 - B3841 自幂数判断 - B4002 平方之和 - B4007 计数 - B4036 数位之和 - B4064 寻找数字 - B4065 数位和 - B3866 数字黑洞 - B3923 小杨做题(假设涉及数学计算) - B3954 乘法问题 特殊算法与逻辑处理类: - B4260 时间跨越 这样分类后,用户可以根据类型找到相似的解题模板,例如字符绘制类题目通常需要双重循环和条件判断输出字符,数学类题目需要循环遍历和数学条件判断,数位处理则需要分解各位数字等。</think>以下是根据题目类型和代码模板相似性对GESP二级题目的分类: --- ### 一、字符图案绘制类 **共同特征**:需按照特定规律输出字符矩阵,代码结构以双重循环为主,通过行列坐标判断输出内容。 1. $B3844$ [画正方形] 2. $B3837$ [画三角形] 3. $B3865$ [小杨的X字矩阵] 4. $B3924$ [小杨的H字矩阵] 5. $B3955$ [小杨的日字矩阵] 6. $B4037$ [小杨的N字矩阵] 7. $B4259$ [等差矩阵] **典型代码模板**: ```python n = int(input()) for i in range(n): for j in range(n): if 特定条件: # 如对角线、边框等 print("*", end="") else: print(" ", end="") print() ``` --- ### 二、数学计算与数论类 **共同特征**:需遍历数字或组合,结合数学公式或定理进行条件判断,代码通常包含循环和分支结构。 #### 子类1:数位处理 1. $B3841$ [自幂数判断] 2. $B4036$ [数位之和] 3. $B4064$ [寻找数字] 4. $B4065$ [数位和] 5. $B3866$ [数字黑洞] **典型代码模板**: ```python n = input().strip() while True: digits = list(n) # 对数位进行操作(如排序、求和等) if 满足终止条件: break ``` #### 子类2:素数相关 1. $B3840$ [找素数] **模板**:通过遍历和取模判断素数。 #### 子类3:公式应用 1. $B3845$ [勾股数] 2. $B3836$ [百鸡问题] 3. $B4002$ [平方之和] 4. $B4007$ [计数] **模板**:多重循环枚举组合,验证数学公式(如 $a^2 + b^2 = c^2$)。 --- ### 三、特殊算法与逻辑类 **共同特征**:需实现特定算法逻辑(如模拟、日期计算),代码流程较复杂。 1. $B3923$ [小杨做题] 2. $B3954$ [乘法问题] 3. $B4260$ [时间跨越] **示例**: 时间差值计算需将时间转换为分钟数后处理。 --- ### 分类总结表 | 类型 | 题目编号 | |--------------------|-------------------------------------------| | 字符图案绘制类 | $B3844$, $B3837$, $B3865$, $B3924$, $B3955$, $B4037$, $B4259$ | | 数学计算与数论类 | $B3845$, $B3836$, $B3840$, $B3841$, $B4002$, $B4007$, $B4036$, $B4064$, $B4065$, $B3866$ | | 特殊算法与逻辑类 | $B3923$, $B3954$, $B4260$ | 通过此分类,可快速定位相似题目并复用代码框架。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值