Java实现 洛谷 P1085 不高兴的津津

本文介绍了一个使用Java实现的简单程序,该程序通过控制台接收一周内每天的两个整数输入,然后找出总和超过8的最大值对应的一天,并将其编号输出。程序运用了Scanner类进行控制台输入,以及数组和条件语句来查找最大值。

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

在这里插入图片描述

import java.io.*;
import java.util.*;
class Main{
	public static void main(String args[])
	{
		Scanner sc=new Scanner(System.in);
		int a,b,s,max=0,i,day=0;
		for (i=1;i<8;i++)
		{
			a=sc.nextInt();
			b=sc.nextInt();
			s=a+b;
			if((s>max)&&(s>8))
			{
				max=s;
			    day=i;
			}
		}
		System.out.println(day);
	}
}
### 洛谷 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\)),所以即使采用较为朴素的方法也能获得满意的效果。但如果面对更大范围内的问题,则需进一步优化策略减少必要的运算开销。 ---
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值