2021.11.4 记录一道递归2星题 这道题思路很简单,从小到大求出最小的速度,可以从1开始递归

#include<stack>
#include<cmath>
using namespace std;
typedef long long ll;
int H,C,p;
int recursion(int m,int t){
    if(-p*t+C >= 0) return m;
    m++;
    t = H/m;
    if(H%m != 0)
    t++;
    return recursion(m,t);
}
int main(){
    cin >> H >>C >> p;
    int m =recursion(1, H);
    if(m>10) cout << -1;
    else cout << m;
    return 0;
}

这道题值得注意的是时间是向上取整的,根据样例2,你就可以算出13/7 余数为6 但是时间是2秒 有了代码9-11行的向上取整写法,其他就没什么注意了,最后记得判断是否m<=10即可。