C++题目:冬眠

大家好,今天我们的题目叫《冬眠》,小编顺便拓展一下知识吧!

冬眠(又名‘冬蛰’)是一种状态,在这种状态中一种极端的但被调节的体温、代谢和其它生理活动的下降,作为对减少能量消耗的适应。冬眠的物种大致可分成两类即主动式冬眠动物和被动式冬眠动物,后者如仓鼠,外部因素,包括光周期,食物和外界温度对这种冬眠周期事件的定时起主要作用。

那么言归正传,今天的题目:

问题描述

麻雀帕西和青蛙弗洛格是好玩伴,它们经常一起比赛唱歌。但冬天来了,青蛙弗洛格冬眠了,它的睡眠深度是 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;  //输出 
}  //主函数括号

 谢谢大家读此文章!

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值