🐎要打一个血量为 的史莱姆,每回合他可以攻击一次,造成 点伤害。当一个史莱姆的血量小于等于 时,就会死亡。 如果一个史莱姆受到攻击后,当前血量小于等于最大血量的一半,且没有死亡,就会分裂成两个史莱姆,它们的当前血量和最大血量都等于分裂前的血量。 假设史莱姆不会攻击,只会挨打,求🐎打掉所有史莱姆需要的回合数。(用C++写)
时间: 2023-05-26 12:03:06 浏览: 156
#include <stdio.h>
int main() {
int max_health, attack, split_health;
printf("请输入史莱姆的最大血量: ");
scanf("%d", &max_health);
printf("请输入史莱姆的攻击力: ");
scanf("%d", &attack);
printf("请输入分裂血量阈值: ");
scanf("%d", &split_health);
int slime_count = 1;
int total_rounds = 0;
while (slime_count > 0) {
int new_slime_count = 0;
for (int i = 0; i < slime_count; i++) {
int current_health = max_health;
while (current_health > 0) {
current_health -= attack;
if (current_health <= 0 && max_health >= split_health) {
new_slime_count += 2;
break;
}
}
}
slime_count = new_slime_count;
total_rounds++;
}
printf("打掉所有史莱姆需要的回合数: %d\n", total_rounds);
return 0;
}
阅读全文