P1085 [NOIP2004 普及组] 不高兴的津津

刚入门C语言一个月,受到一个同为新手的网友的创作激情而感动,特此也发一篇题解作为自己的C语言的博客启程。

题目

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

输入格式

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

输出格式

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

首先题目字数繁多,选取关键信息

输出为一周的每天的在校和在外的课外辅导时间,已知要输出的次数为一周(即七次)。

津津只要一天学习超过八小时即为不高兴。

超过的时间越长就会越不高兴。

最终输出 最不高兴的一天。

####首先来个一瞬间能想得出来的笨法子(三次循环,时间复杂度为3n,这样便于理解);

首先考虑要运用的变量,首先在第一次循环中将学校内的学习时间和校外的学习时间给输出。

(设以为变量ab);

用一个sum变量将ab变量相加,每次循环进行对八小时的比较,大于就将这个数存在一个数组里面

(设为num[10],记得初始化);

因此得到第一个循环;

此时在相应的天数位置,只要大于8小时的位置都有了相应的不高兴的时长,接下来的

第二次循环将他们进行比较;用一个max变量进行存储最大的数;

这次循环将max保留在数组里,其他都进行了初始化。

第三次循环将最大的天数输出出来,此时还有一种情况,就是当所有天数里的时间都未超过八小时

则要输出0,因此在设一个变量c作为判断依据;

如果变为1则输出最不高兴的天数,反之则输出0。

tips:因为数组是从下表0开始进行的,所以在最后输出的天数要在数组的下表上加1。

这是第一个题解,看起来相当繁琐,所有的条件都分开进行的循环。

其实是可以用一次循环进行解决。

接下来直接放代码。

好了,一个循环就可以解决(时间复杂度为n);

 

运用一个day和&&既可以把第二个和第三个循环给省略,将day初始化即可以省略如果没有

不高兴的天数而输出0的if判断。

新手初来乍到,还请多指教。如有错误请指正。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值