【百日刷题计划 第一天】——熟悉语法 语法基础题

💥前言

        ☀️大家好☀️,我是烧蔬菜😁,最近做算法题可以感受到自己确实有点懈怠了😐,所以给自己定一个百日刷题计划,希望自己可以一直坚持下去💪,每天做题,也把题题解写下,记录自己每天的做题痕迹来激励提升自己获取正反馈✊,并且与大家分享下去😁

😉解题报告

💥一、P1089 NOIP2004 提高组 津津的储蓄计划 biu~

☘️ 题目描述☘️

        津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300 300 300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

        为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20 % 20\% 20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 100 100 元或恰好 100 100 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

        例如 11 11 11月初津津手中还有 83 83 83 元,妈妈给了津津 300 300 300 元。津津预计 11 11 11月的花销是 180 180 180 元,那么她就会在妈妈那里存 200 200 200 元,自己留下 183 183 183 元。到了 11 11 11 月月末,津津手中会剩下 3 3 3 元钱。

        津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

        现在请你根据 2004 2004 2004 1 1 1 月到 12 12 12每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 2004 2004 2004 年年末,妈妈将津津平常存的钱加上 20 % 20\% 20% 还给津津之后,津津手中会有多少钱

        输入格式
         12 12 12 行数据,每行包含一个小于 350 350 350 的非负整数,分别表示 1 1 1 月到 12 12 12 月津津的预算。

        输出格式
        一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 − X -X X X X X 表示出现这种情况的第一个月否则输出到 2004 2004 2004 年年末津津手中会有多少钱。

        注意,洛谷不需要进行文件输入输出,而是标准输入输出。

🤔一、思路:

        (1)每月拨款300,存入多余的整百,12个月之后,全部取出并加整体的20%的利息
        (2)现有的钱是每月减去预算,留下多余的钱
        (3)结果:钱不够则break,并输出该月份-x
                            钱够,将现有的与给予的进行+,之后将本月预算-,若为- break掉并输出,若为+ 将属于整百的钱存入,直到12个月之后全部取出并加整体的20%的利息

😎二、源码:

#include <iostream>
using namespace std;

int x;
int sum = 0;
int budget;
int month = 0;
int present = 0;
int flag = 1;								//(1)

int main() {
	for (month = 1; month <= 12; month++) {	//(2)
		scanf("%d", &budget);
		present += 300;
		present -= budget;
		
		if (present < 0) {					//(3)
			flag = 0;
			sum = month;
			break;
		}

		sum += present / 100;				//(4)
		present = present % 100;			//(6)
	}

	if (flag) {								//(7)
		present += sum * 120;
		printf("%d", present);
	}
	else {
		printf("-%d", month);
	}
	return 0;
}

😮三、代码分析:

        (1)flag用于判定XX当前月份是否会预算不足
        (2)累加12个月
        (3)若当前月份预算不足,则将flag赋值为 0 0 0(假),输出赋值为该月份 − x -x x,跳出循环,进行输出
        (5)当前月份剩余的整百钱,累加至存储值
        (6)取余消去当前月份存入的整百钱
        (7)flag为 1 1 1(真),输出存下的钱+利息以及年末余钱的总和

💥二、P1085 [NOIP2004 普及组] 不高兴的津津 biu~

☘️ 题目描述☘️

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

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

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

🤔一、思路:

        (1)若上课时间 > 8 >8 >8小时,进行记录当天不高兴的时长
        (2)每天不高兴时长不累计,输出最不高兴的一天;若都不不高兴,输出 0 0 0

😎二、源码:

#include <iostream>
#include <algorithm>
using namespace std;

int time1;
int time2;
int happy = 0;
int sum;
int maxtime = 0;
int unhappyday = 0;

int main() {
	int week = 7;
	for (int i = 1; i <= 7; i++) {
		cin >> time1 >> time2;
		sum = time1 + time2;
		if (sum > 8) {							//(1)
			happy = sum - 8;					
			if (maxtime < happy) {				//(2)
				maxtime = max(maxtime, happy);
				unhappyday = i;
			}
		}
		
	}
	cout << unhappyday << endl;
	return 0;
}

😮三、代码分析:

        (1)如果不高兴时长 > 8 >8 >8,则获取超过 8 8 8的不高兴值
        (2)与最不高兴的值对比,更新最不高的值和周

🤗 鸡汤来咯:

        盛年不重来,一日难再晨。及时当勉励,岁月不待人。在这里插入图片描述

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值