蓝桥杯——跑步训练
问题描述 小明要做一个跑步训练,初始时,小明充满体力,体力值计为 10000。 如果小明跑步,每分钟损耗 600 的体力。 如果小明休息,每分钟增加 300 的体力。 体力的损耗和增加都是 均匀变化的。 小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。 如果某个时刻小明的体力到达 0,他就停止锻炼,请问小明在多久后停止锻炼。 为了使答案为整数,请以秒为单位输出答案,答案中只填写数,不填写单位。
根据问题描述,我们很直接暴力破解。
不过在代码实现的方面,我才发现一个我有一个误区。就是如果在for里面直接定义一个变量的话,这个变量可以类比于函数里的黑盒变量,for循环结束后即消失。同时不与主函数里的同名变量起冲突。这点导致我在输出的时候不管怎么输出,变量seconds都为0,百思不得其解。
谨记谨记!!!
代码如下:
#include <iostream>
using namespace std;
int main()
{
int seconds=0;
int run=600/60,brea=300/60,all=10000;
for( seconds=0;all>0;seconds++) // 注意这样写 不对 for循环内的黑盒变量
{
if( ( (seconds) /60 ) % 2==0 )
all=all-run;
else
all=all+brea;
}
cout << seconds- (seconds /60)*60 << endl;
return 0;
}