阿里2020.4.8笔试——木头人攻击

本文介绍了一种简单的算法,用于模拟玩家攻击多个怪兽的游戏场景。通过计算玩家的攻击次数和攻击力,来确定能够消灭的怪兽数量。算法区分了不同情况下玩家攻击效率的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

某人有 n n n次机会攻击 m m m个怪兽。攻击时,可以一次攻击 b b b只怪兽。每个怪兽有 a a a滴血,每次攻击能让 b b b只怪兽都减一。

问题解析

很简单。当 b > m b > m b>m时,只需判断 n n n a a a的大小关系。 n n n大则必定能将 m m m只怪兽消灭,反之则一只也无法消灭。当 b ≤ m b \le m bm时,因为每次只能选择攻击其中的一部分怪兽,所以需要计算理论上的最大攻击数 a t t a c k n u m = n ∗ b / a attack_num = n * b / a attacknum=nb/a,如果 a t t a c k n u m > m attack_num > m attacknum>m,则 m m m只怪兽将被全部消灭,否则将消灭 a t t a c k n u m attack_num attacknum只怪兽。

代码解析

n, m, a, b  = list(map(int, input().split()))

if b > m:
    res = m if n >= a else 0
else:
    attack_num = n * b // a
    res = m if attack_num > m else attack_num
print(res)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值