“钱”老梗之小c的零花钱

10012

题目描述

体育在中考地位越来越重要,为了鼓励小C同学进行体育锻炼,小C的爸爸制定了一个计划,用于鼓励小C进行体育锻炼。他把小C每天的体育锻炼时间进行统计(单位:分钟,是一个整数),小C每累计3天锻炼时间达到60分钟或者以上,就奖励小C零花钱,零花钱为这3天的锻炼总时间-170元(注意:每次锻炼不能重复计算)。但如果有一天小C没有参加锻炼(锻炼时间为0),则立刻终止奖励(这意味着后续的锻炼都无法获得奖励)。已知小C的锻炼数据,小C很需要零花钱,所以总是第一时间拿奖励的零花钱,请问小C能拿到多少钱?

输入输出

数据的第一行一个正整数n,表示小C参加锻炼的天数

第二行是n个>=0的整数,表示小C第i天锻炼的时间(单位:分钟)

输出

零花钱数。

其实这题又是在考察一维数组(熟悉我的人都知道我最擅长的也就是一维数组而已,不熟悉我的康康我的个人简介就OK)

代码如下:

#include<bits/stdc++.h>
#include<iomanip>
using namespace std;
int a[100001],b[100001]={0},c=0,p=0;//定义比较大的数组切记要放在主函数外,a用于储存分钟数,b用于避免重复计算,c用于每三次的叠加,p用于存储零花钱总数并输出
int main()
{
freopen("10012.in","r",stdin);
freopen("10012.out","w",stdout);//这两行可以自行删除了
int n,s=0;
cin>>n;

for(int i=1;i<=n;i++)
{
	cin>>a[i];
	b[i]=1;
}
for(int i=1;i<=n-2;i++)
{
	if(a[i]>=60&&b[i]==1)//如果小c的锻炼达到60分钟并且没有被重复计算,可以累计分钟数并且计算零花钱数
	{
	s+=a[i];
	b[i]=0;
	c++;
	if(c==3)
	{
		p=p+(s-170);
		s=0;
		c=0;
	}
	
}
	if(a[i]==0)break;//如果他今天没有锻炼,就不能计算零花钱了
}
cout<<p;
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MOKa君的詟学客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值