不高兴的津津(洛谷-P1085)

这是一个简单的C++程序,用于检查一名中学生一周内的课程安排是否合理。程序读取七天的学校上课时间和额外课程时间,判断是否存在某天上课时间超过八小时的情况,并输出最不合理的日子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入输出格式

输入格式:

输入包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式:

输出包括一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

输入输出样例

输入样例#1: 

5 3
6 2
7 2
5 3
5 4
0 4
0 6

输出样例#1: 

3

源代码

#include <iostream>
using namespace std; 
int main() 
{
    int school,extra,sum;
    int i;
       
    for(i=1;i<=7;i++)
    {
        cin>>school>>extra;
        sum=school+extra;//计算总上课时间
        if(sum>8)//总上课时间大于8时,输出天数
        {
            cout<<i<<endl;
            break;//终止计算
        }
        sum=0;//令总上课时间为0
    }
    if(sum==0)	cout<<"0"<<endl;//总上课时间为0,说明无不高兴天数
        
    return 0;
}

 

### 洛谷 P1085 题目解析 洛谷 P1085 是一道经典的模拟类题目,名为《高兴的津津》[^1]。此题的核心在于通过一系列逻辑判断来计算特定条件下的天数。 #### 题目概述 题目描述了一个场景:主人公津津每天都有一定的计划时间分配表,其中包括上课、做作业和其他活动的时间安排。然而,当某一天的实际活动时间超出她的预期时,她会感到“高兴”。因此,需要编写程序统计一段时间内津津有多少天处于“高兴”的状态。 --- #### 解决方案分析 ##### 数据输入与处理 输入部分包括若干组测试数据,每组数据的第一行为一个正整数 \( n \),表示有 \( n \) 天的数据记录;随后的 \( n \) 行中,每一行包含四个非负整数,分别代表当天实际花费在课程上的时间、完成家庭作业所需时间、其他活动所耗费时间和预估总时间上限。 对于每一天的情况,可以通过简单的比较操作得出是否超过预计的最大值: \[ \text{if}(\text{actualTime} > \text{expectedMax})\] 其中, - `actualTime` 为当天所有活动加起来的真实耗时; - `expectedMax` 则是预先设定好的最大容忍限度。 最终累加满足上述条件的日子数目即可得到答案。 --- #### AC代码实现 以下是基于 C++ 实现的一个标准解答版本: ```cpp #include <iostream> using namespace std; int main() { int T; cin >> T; // 测试案例数量 while(T--) { int days, unhappyDays = 0; cin >> days; // 总共几天 for(int i = 0; i < days; ++i){ int classTime, homeworkTime, otherActivityTime, expectedMax; cin >> classTime >> homeworkTime >> otherActivityTime >> expectedMax; if(classTime + homeworkTime + otherActivityTime > expectedMax){ unhappyDays++; } } cout << unhappyDays << endl; // 输出结果 } return 0; } ``` 这段代码首先读取总的测试次数 \(T\) ,之后针对每一个独立实例重复执行相同的操作流程直至结束为止[^1]。 --- ### 注意事项 - **边界情况**:考虑到可能存在的极端情形比如没有任何一天超限或者每天都超过了限定额度等情况,在设计算法之初就应该充分考虑这些特殊情况。 - **效率考量**:由于本题规模较小 (\(n≤100\)),所以即使采用较为朴素的方法也能获得满意的效果。但如果面对更大范围内的问题,则需进一步优化策略减少必要的运算开销。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值