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

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

问题描述

某人有nnn次机会攻击mmm个怪兽。攻击时,可以一次攻击bbb只怪兽。每个怪兽有aaa滴血,每次攻击能让bbb只怪兽都减一。

问题解析

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

代码解析

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)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值