5277:王者荣耀
描述:
老胡编程玩累了,想打一盘王者荣耀来放松放松,顺便还带了个妹子,本来他想在妹子面前秀一波操作,没想到他竟然......,竟然超鬼了0.0,一顿操作猛如虎,一看战绩0-5! 为了挽回面子他决定去偷塔,已知老胡的初始等级为1级,攻击力为30,每升一级攻击力加5(最高15级);现在防御塔有m滴血量,老胡每攻击k次升一级(如果老胡的攻击力为H,打防御塔一次,搭掉的血也是H, 当防御塔的血等于0时,就视为被推掉了)。
问题:
问老胡要攻击多少次才可以把防御塔推掉?
输入:
第一行输入一个整数T,表示测试样例的个数;每个测试样例输入一行,包括m( 0≤ m ≤ 105), k(1 ≤ k ≤ 105); 中间用一个空格隔开。
输出:
组测试样例输出一行,包含一个数老胡推掉防御塔所需攻击的次数。
样式输入:
2
0 10
61 2
样式输出:
0
3
源代码:
#include <iostream>
using namespace std;
int main(){
int n,m,k,s,dps,level;
cin>>n;
while(n--){
cin>>m>>k;
s=0,level=1,dps=30;//循环内数据初始化
while(m>0){//推塔成功条件
m-=dps;
++s;
if(s%k==0){//每隔k次等级+1
if(level<15){// !!!等级临界条件
level+=1;
dps+=5;
}
}
}
cout<<s<<endl;
}
return 0;
}