大家好,今天我们的题目叫《冬眠》,小编顺便拓展一下知识吧!
冬眠(又名‘冬蛰’)是一种状态,在这种状态中一种极端的但被调节的体温、代谢和其它生理活动的下降,作为对减少能量消耗的适应。冬眠的物种大致可分成两类即主动式冬眠动物和被动式冬眠动物,后者如仓鼠,外部因素,包括光周期,食物和外界温度对这种冬眠周期事件的定时起主要作用。
那么言归正传,今天的题目:
问题描述
麻雀帕西和青蛙弗洛格是好玩伴,它们经常一起比赛唱歌。但冬天来了,青蛙弗洛格冬眠了,它的睡眠深度是 DD 。
麻雀帕西觉得好无聊,于是它想办法要唤醒弗洛格。麻雀帕西只会唱 NN 首歌,第 ii 首歌的音量是 S_iSi。
每听完一首歌,青蛙弗洛格的睡眠深度就会减少,减少的值等于它听到的歌的音量。
当青蛙弗洛格的睡眠深度大于 0 的时候,它会继续冬眠,当睡眠深度小于或者等于 0时,它就会被唤醒了。
麻雀帕西会从第 1 首歌开始唱,唱完第 1 首歌后如果弗洛格还没醒就接着唱第 2 首歌,如果唱完第 2 首歌弗洛格还没醒就接着唱第 3 首歌,依次类推,如果唱完第 NN 首歌后弗洛格还没醒,那么麻雀帕西又重新从第 11首歌开始唱,就像循环播放音乐一样,一直到青蛙弗洛格被唤醒为止,那么麻雀帕西总共唱了多少首歌?
输入格式
第一行,两个整数:DD和NN。
第二行,NN 个整数,空格分开,第 ii 个整数就是第 ii 首歌的音量 S_iSi。
输出格式
一个整数,麻雀帕西总共唱了多少首歌后,弗洛格会被唤醒?
输入数据 1
13 3
5 2 4
Copy
输出数据 1
4
Copy
样例解释1
麻雀帕西唱完第11首歌后,青蛙弗洛格睡眠深度变成88, 麻雀帕西唱完第22首歌后,青蛙弗洛格睡眠深度变成66, 麻雀帕西唱完第33首歌后,青蛙弗洛格睡眠深度变成22, 麻雀帕西再次唱完第11首歌后,青蛙弗洛格睡眠深度变成-3−3,青蛙弗洛格会被唤醒。
输入数据 2
3 3
5 2 4
Copy
输出数据 2
1
Copy
样例解释2
麻雀帕西唱完第11首歌后,青蛙弗洛格睡眠深度变成-2−2,青蛙弗洛格会被唤醒。
输入数据 3
21 3
2 1 3
Copy
输出数据 3
11
代码:
#include<iostream> //头文件
using namespace std; //声明
int main(){ //主函数
int a[51],n,d,i=0,s=0; //变量,数组,记得还要初始值
cin>>d>>n; //输入
for(int j=0;j<n;j++){ //循环,从0到n-1,每次+1
cin>>a[j]; //输入数组
s+=a[j]; //s=s+数组,新值
} //for对应括号
while(d>s){ //循环,条件是d大于s
d-=s; //d=d-s,新值
i+=n; //i=i+n ,新值
} //while对应括号
while(d>0){ //循环,条件是d大于0
d-=a[i%n]; //d=d-数组 ,新值
i++; //i+1
} //while对应括号
cout<<i; //输出
} //主函数括号
谢谢大家读此文章!