洛谷试炼day1:不高兴的津津

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

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

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

输入输出样例
输入

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

输出

3

思路:用for循环输入并处理数据,周几刚好对应for循环中的变量i,注意输出格式的要求。

#include <iostream>

using namespace std;

int main()
{
    int i,a,b,c=0,sum,day=0;
    for(i=1;i<=7;i++)
    {
        cin>>a>>b;
        sum=a+b;
        if(sum>8&&sum>c)//输出格式控制,最不高兴的sum最大,借助c这个变量找到最大的
            c=sum,day=i;
    }
    cout << day<< endl;
    return 0;
}
### 解决方案 对于“高兴的津津”的编程竞赛问题,可以通过编写程序来解决这个问题。该问题的核心在于计算一周内每一天总的上课时间,并判断是否有某天总课时超过了8小时。如果有,则输出这一天是星期几;如果没有这样的日子,则输出0。 #### Python 实现方法 下面是一个基于Python实现的方法: ```python def find_unhappiest_day(): days_of_week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] max_hours = 0 unhappy_day_index = -1 for i in range(7): school, extra = map(int, input().split()) # 获取每天学校时间和额外补习时间 total_time = school + extra # 计算每日总学习时间 if total_time > max_hours: max_hours = total_time # 更新最大值 unhappy_day_index = i # 记录下标 if max_hours > 8: # 判断是否存在超过8小时的情况 print(days_of_week[unhappy_day_index]) # 输出最开心的一天名称 else: print("No Unhappy Day") # 如果每天都未超限则返回无满情绪的日子 find_unhappiest_day() ``` 此代码实现了读取输入并处理的功能,通过比较找到最有可能使津津感到快乐的那一日,并依据条件给出相应的输出结果[^1]。 #### C++ 实现方法 考虑到原问题是用C++编写的,这里也提供了对应的C++版本解决方案: ```cpp #include <iostream> using namespace std; int main(){ int time[8], day=0, maxTime=0; for (int i = 1; i <= 7; ++i){ int sch, ext; cin >> sch >> ext; // 输入当天学校的上课时间和课外活动时间 time[i] = sch + ext; // 将两者相加得到全天的学习时间 if (time[i] > maxTime){ // 找到最大的单日学习量及其对应日期 maxTime = time[i]; day = i; } } if (maxTime > 8) // 若存在任何一天的学习总量大于8小时 cout << day << endl; // 输出具体哪一天让她最为沮丧 else // 否则说明没有任何一天超出规定范围 cout << 0 << endl; // 表明本周没有特别令人烦恼的事情发生 return 0; } ``` 这段C++代码同样遵循了上述逻辑流程,在遍历过程中断更新最高纪录以及相应的位置索引,最后根据最终的最大值决定如何响应用户查询求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值