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分钟的时间差。

 

 

经过查询,以下是与B3850及GESP202306四级幸运数相关的题目解析和信息: --- ### 关于B3850或GESP202306四级幸运数的信息 幸运数通常是指满足特定条件的一类整数,在编程竞赛或者数学问题中较为常见。对于B3850以及GESP202306中的“幸运数”,可能涉及以下几个方面的问题。 #### 方法一:定义幸运数 幸运数可以被定义为仅由某些特殊数字组成的正整数集合。例如,常见的幸运数是由数字`4`和`7`组成的所有整数。 这类问题的核心在于如何判断一个给定的数是否属于该集合,或者统计某个范围内的幸运数数量。 ```cpp #include <bits/stdc++.h> using namespace std; bool isLucky(int n) { while (n > 0) { if (n % 10 != 4 && n % 10 != 7) return false; n /= 10; } return true; } int main() { int num = 47; // 示例输入 if (isLucky(num)) cout << "Yes, it's a lucky number."; else cout << "No, it's not a lucky number."; } ``` #### 方法二:计算区间内幸运数的数量 若需要求出某范围内(如 `[a, b]`)有多少个幸运数,则可以通过遍历整个区间的每一个数来实现。这种方法适用于较小的数据规模。 ```python def count_lucky_numbers(a, b): def is_lucky(n): for digit in str(n): if digit not in '47': return False return True result = sum(1 for x in range(a, b + 1) if is_lucky(x)) return result # 测试代码 print(count_lucky_numbers(1, 100)) # 输出结果应包括所有符合条件的幸运数 ``` #### 方法三:优化算法以处理大规模数据 当面对更大的数值时,直接枚举会变得低效甚至不可行。此时可通过动态规划或其他高效方法解决类似问题。比如预处理所有的幸运数存入数组供后续快速查找等策略。 $$ \text{时间复杂度} \approx O(\log_{10}(N)), N=\max(a,b) $$ #### 注意事项 - 如果具体考试题目未明确说明规则,请仔细阅读原题描述。 - 对于不同类型的幸运数定义,需调整验证逻辑适应实际情况。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值