#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a, b, c, d;
int _round = 0;
bool win = false;
int main()
{
// a: 坦克数量
// d: 碉堡数量
// c: 每个碉堡一回合可杀死c个坦克
// b: 每隔碉堡初始血量为b
cin >> a >> b >> c >> d;
int advLife = d * b;
while (true) {
if (win) break;
_round++;
if (a <= 0) break;
else {
advLife-= a;
d = ceil(advLife / b);
}
if (advLife <= 0)win = true;
else {
a -= d * c;
}
}
printf("%d\n", win ? _round : -1);
}
/*
Input: 10 6 8 2
Output: 2
*/
【京东】攻城战
最新推荐文章于 2025-11-24 15:27:16 发布
本文介绍了一个关于策略游戏编程的实例,通过C++实现坦克与碉堡之间的战斗模拟,探讨了如何计算坦克消灭碉堡所需的最小回合数。关键算法包括循环判断、资源管理与策略调整,最终输出胜利条件下的回合数。
7876

被折叠的 条评论
为什么被折叠?



