题目链接:https://www.luogu.com.cn/problem/P5613
题目大意:
连续跳楼梯,每秒跳一段台阶,若跳到特殊楼梯,则能跳的间隔+1
求跳到最终台阶的秒数
思路:
直接循环计数
代码如下:
#include <iostream>
using namespace std;
int main()
{
int n, m, k, i, ans[11], start = 0, sum = 0;
cin >> n >> m >> k;
for (i = 0; i < k; ++i)
{
cin >> ans[i];
}
i = 0;
while (start < n)
{
if (start == ans[i] )
{
++m;
++ i;
}
else if (start > ans[i] && i < k )
{
++i;
}
start += m;
++sum;
}
cout << sum << endl;
return 0;
}
反思:
题目很简单,但是我WA了一次,原因在于未考虑特殊台阶的计数边界
即计数 i < k