描述
梅西和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;
}