题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式
输入包括 7 行数据,分别表示周一到周日的日程安排。每行包括两个小于 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
思路:
法一:(最简单也最推荐)
代码不难理解所以不多解释了
package 分支结构;
import java.util.Scanner;
public class P1085_second {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int sum, max = 0,day = 0;
for(int i=0;i<7;i++) {
int schoolIn = sc.nextInt();
int schoolOut = sc.nextInt();
sum = schoolIn + schoolOut;
if(sum > max) {
max = sum;
day = i + 1;
}
//当sum=max的时候不做任何操作
//所以不用再对条件“如果有两天或两天以上不高兴的程度相当,
//则输出时间最靠前的一天。”进行操作了
}
if(max > 8) //这是一个仔细审题的坑,输出中明确说了“如果不会不高兴则输出 0”
System.out.println(day);
else
System.out.println(0);
}
}
法二:
我自己写的,代码又长又复杂,可以不看
大概思路就是:
使用两个二维数组arr和arr2,arr数组用来记录输入的数据,arr2数组的arr2[i][0]用来记录每天的总学习时长,arr2[i][1]是标记位,标记这天是否为学习时间最长的那天。
其中,arr2[i][0] = arr[i][0] + arr[i][1]
使用max记录下最长的学习时间,然后用max跟所有的arr2[i][0]进行比较,如果相等,标志位就附1(对应代码 arr2[i][1] = 1)
最后输出的时候如果max>8,就看标志位,只要标志位为1就输出并结束循环
如果max<=8,直接输出0.
package 分支结构;
import java.util.Scanner;
public class P1085 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int[][] arr=new int[7][2];
int[][] arr2=new int[7][2];
int max = 0;
for(int i=0;i<7;i++) {//循环输入
for(int j=0;j<2;j++) {
arr[i][j] = sc.nextInt();
}
arr2[i][0]=arr[i][0]+arr[i][1];//总学习时间用arr2[i][0]记录下来
}
//找出最长的学习时间
for(int i=0;i<6;i++) {
if(arr2[i][0] > max) {
max=arr2[i][0];
}
}
if(max > 8) {
//学习时间最长的会被标记 1
for(int i=0;i<6;i++)
if(arr2[i][0]==max) {
arr2[i][1]=1;
}
//顺序判断,只要找到标记 1 的就是时间靠前的学习时间最长的那天
for(int i=0;i<7;i++) {
if(arr2[i][1]==1) {
System.out.println(i+1);
break;//找到就退出循环
}
}
}else{
System.out.println(0);
}
}
}
反思
仔细审题。忽略了题目中的“但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。” 和 “如果不会不高兴则输出 0”。