YTU 2517: 打倒魔王↖(^ω^)↗

2517: 打倒魔王↖(^ω^)↗

时间限制: 1 Sec  内存限制: 128 MB
提交: 231  解决: 112

题目描述

从前有一个王子,他喜欢上了邻国的一个公主。终于有一天他向公主表白了,公主答应了他。
在婚礼那天,可恶的魔王来了,他抢走了公主。王子很愤怒(╰_╯)#,他决定打上魔宫救回公主。
临走那天,巫师给了他一本魔法书,让他可以看到自己与敌人的差距,来促使他不断进步。
当王子可以打败怪物时魔法书显示:Trial!,当打不败时显示:You need more power!
怪物的等级比较低,只有被攻击时才会反击,王子会不断地进行攻击,每攻击一次,怪物就反击一次,直到怪物被杀死,或者被怪物杀死。
损失的血量 = 敌人的攻击-自己的防御

//以下代码会自动添加到程序的开始
#include<iostream>
using namespace std;
class Role
{
public:
    friend void judge(Role &,Role &);
    void input()
    {
        cin>>HP>>ATK>>DEF;
    }
private:
    int HP;
    int ATK;
    int DEF;
};


//以下请给出 成员函数judge 

//以下代码会自动添加到程序的末尾
int main()
{
    Role monster,prince;
    monster.input();
    prince.input();
    judge(monster,prince);
    return 0;
}

输入

输入有多行
第一行:怪物的属性:血量,攻击,防御;
第二行:王子的属性:血量,攻击,防御。

输出

打不过怪物时输出:You need more power!,否则输出:Trial!。

样例输入

9 6 2
8 5 3

样例输出

Trial!

提示

例如

9 6 2

8 5 3

表示怪物有9点血,6点攻击,2点防御

王子有8点血,5点攻击,3点防御

王子攻击怪物一次,由题意可知

怪物损失3点血

怪物反击王子一次

王子损失3点血

现在的状态

6 6 2

5 5 3







最后王子剩了2点血

可以杀死怪物

输出Trial!

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

#include<iostream>
using namespace std;
class Role
{
public:
    friend void judge(Role &,Role &);
    void input()
    {
        cin>>HP>>ATK>>DEF;
    }
private:
    int HP;
    int ATK;
    int DEF;
};
void judge(Role &a,Role &b)
{
    int n=a.HP/(b.ATK-a.DEF);
    if(n*(b.ATK-a.DEF)<a.HP)n++;
    if((a.ATK-b.DEF)*(n-1)<b.HP)
        cout<<"Trial!"<<endl;
    else cout<<"You need more power!"<<endl;
}
int main()
{
    Role monster,prince;
    monster.input();
    prince.input();
    judge(monster,prince);
    return 0;
}

原文地址:https://www.cnblogs.com/im0qianqian/p/5989491.html