回合制游戏

回合制游戏

http://www.nowcoder.com/questionTerminal/17a083854661490e85e5bb6c4b26e546

题解:

题目难度:二星

考察点: 思维,数学

易错点:

C++中的除法是向下去整,也就是说当均为整数时,只取整数部分,因此当全由构成时,其结果应该为,否则不能整除时就会少计算一个

解法:数学

当使用时,需要一个回合来蓄力,一个回合来攻击,需要两个回合。因此,当倍的都无法超过时,才使用,否则使用一定是更优的。如果全使用,则需要的次数为。如果全使用,则需要的次数。同时对于余数部分,分为3种情况,一种是直接整除,一种是一个可以完成,一种是需要才能完成。

#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
LL hp,normalAttack,buffedAttack;
int main()
{
    scanf("%lld%lld%lld",&hp,&normalAttack,&buffedAttack);
    if(normalAttack*2>=buffedAttack){
        printf("%lld\n",(hp+normalAttack-1)/normalAttack);
    }else{
        LL tmp=hp/buffedAttack*2;
        LL mod=hp%buffedAttack;
        if(mod<=normalAttack){
            if(mod) tmp++;
        }else tmp+=2;
        printf("%lld\n",tmp);
    }
    return 0;
}
全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务