【qscoj】伊苏比的梦幻之旅之教练(直接+特殊+字符串)

描述
梅西和C罗需要聘请一位教练对他们进行二人训练。梅西的能力值为a,C罗的能力值为b。教练1的训练效果值为二者能力值相加,即a+b.教练2的训练效果值为二者能力值相乘,即a*b.他们希望聘请一位训练效果值更高的教练,你能帮帮他们吗?

输入
两个整数a,b.

输出
若教练1的训练效果值更高,输出“1”
若教练2的训练效果值更高,输出“2”
若两位教练的训练效果值一样,输出“1/2”

小数据范围:1≤a,b≤10^4
中数据范围:1≤a,b≤10^18
大数据范围:1≤a,b≤10^418

A(小数据) :

#include<bits/stdc++.h>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    if ((a + b) > (a * b)) {    //数据范围小。直接根据题意
        cout << "1" << endl;
    } else if ((a + b) < (a * b)){
        cout << "2" << endl;
    } else {
        cout << "1/2" << endl;
    }
    return 0;
}

A(中数据) :

#include<bits/stdc++.h>
using namespace std;

int main() {
    long long a, b;
    cin >> a >> b;  //相乘会爆long long,不能直接根据题意,而是分析特殊情况判断
    if (a == 1 || b == 1) { //至少有一个数为1的话,x和x+1,加起来的更大
        cout << "1" << endl;
    } else if (a == 2 && b == 2){   //相等只有这种情况
        cout << "1/2" << endl;
    } else {
        cout << "2" << endl;    //当然是后面乘起来大的情况比较多
    }
    return 0;
}

A(大数据) :

#include<bits/stdc++.h>
using namespace std;

int main() {
    string a, b; //啊这么大的数据范围就得用字符串的方式进行输入啦。
    cin >> a >> b;
    if (a == "1" || b == "1") { //注意是和字符"数字"比较,然后下面的分析判断和中数据一样
        cout << "1" << endl;
    } else if (a == "2" && b == "2"){
        cout << "1/2" << endl;
    } else {
        cout << "2" << endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值