题目描述
蜗牛爬通天塔,蜗牛有体力要求,体力值初始是100,每爬1小时体力消耗10,每小时向上30厘米,当体力值是到达60时蜗牛就爬不动了,需要休息,每小时恢复体力值20,直到体力值恢复成100,休息一小时掉落20厘米。
请问爬到N个小时后,在距离地面的多少的塔的位置
输入
1个整数N(1<N<1000)
输出
1个整数单位厘米。
样例输入 复制
5
样例输出 复制
100
来源/分类
二学阶
题目描述
蜗牛爬通天塔,蜗牛有体力要求,体力值初始是100,每爬1小时体力消耗10,每小时向上30厘米,当体力值是到达60时蜗牛就爬不动了,需要休息,每小时恢复体力值20,直到体力值恢复成100,休息一小时掉落20厘米。
请问爬到N个小时后,在距离地面的多少的塔的位置
输入
1个整数N(1<N<1000)
输出
1个整数单位厘米。
样例输入 复制
5
样例输出 复制
100
来源/分类
二学阶
引自免费微信小程序:皆我百晓生
为了实现这个功能,我们可以编写一个简单的C++程序来模拟蜗牛爬塔的过程。以下是详细的步骤和相应的C++代码:
下面是完整的C++代码实现:
#include <iostream>
using namespace std;
int main() {
int N; // 输入的时间
cin >> N;
int stamina = 100; // 初始体力
int climbRate = 30; // 每小时上升高度
int consumeRate = 10; // 每小时体力消耗
int recoverRate = 20; // 每小时恢复体力值
int height = 0; // 蜗牛当前高度
int time = 0; // 当前时间
for (time = 1; time <= N; ++time) {
if (stamina >= consumeRate) { // 体力足够,爬行
height += climbRate;
stamina -= consumeRate;
} else { // 体力不足,休息并掉回部分高度
height -= recoverRate - (consumeRate - stamina);
stamina = recoverRate;
}
}
cout << height << endl;
return 0;
}
这段代码将根据输入的时间N
计算蜗牛爬塔后的高度,并将其作为输出打印出来。例如,对于样例输入5,程序会输出100,表示在第5个小时,蜗牛位于距离地面100厘米的位置。