蓝桥杯小白入门赛第三场------蓝桥快打

题目:

问题描述:
小蓝和小桥又在玩电动啦!
最近出了一款新的游戏,“蓝桥快打”。两位玩家分别控制一位格斗家,每个格斗家有两个属性:体力值和攻击力。
他们轮流攻击对方,小蓝先进行攻击,然后是小桥,然后轮到小蓝,以此类推。
每一次进行攻击,被攻击的一方都会减少体力值,减少的体力值等于攻击方的攻击力,当某一方的体力值小于等于0,那么游戏结束,体力值先小于等于0的一方输。
小蓝是一个计算机高手,他知道了小桥的体力值和攻击力,他决定调整自己的攻击力,以保证自己一定能赢,但是他又不想太明显,以至于被小桥发现,所以他决定调整自己的攻击力为保证自己一定能赢的最小值。
请你告诉他,应该将自己的攻击力调整为多少。
输入格式
输入包含多个测试组。
第一行输入一个整数T(1≤T≤104),表示测试组的数量。
接下来T行,每行输入三个整数,A,B,C (1≤ A, B, C ≤109),A为小蓝的体力值,B为小桥的体力值,C为小桥的攻击力。

样例: 

输入:
3
5 6 1

10 16 10

8 8 3

输出:

2
16

说明:
第一组样例,如果小蓝的攻击力为1,那么在轮流攻击5次后,就会输掉,所以最小是2。
第二组样例,小蓝必须一击必杀。 

 

代码如下:

#include

using namespace std;
//这里要知道一个知识点是向上取整公式(x+y-1)/y;
//个人理解就是 x 里有多少个 y。
int main()
{
    int n;
    cin >> n;
    while(n--)
    {
        int a,b,c;
        cin >> a >> b >> c;
        int x = (a+c-1)/c; //求出小蓝能挺多少轮
        cout << (b+x-1) / x << endl; 
    }
    return 0;
}

你可能感兴趣的:(题解,蓝桥杯,c++,算法)