洛谷P5710 【深基3.例2】数的性质

这道题乍一看逻辑判断条件十分复杂,但是我们有简便的方法,规避复杂逻辑情况的判断
我们可以通过一个bool类型的值来存储当前逻辑判断的条件,然后对这些bool类型的值进行逻辑与和逻辑或操作,就可以规避复杂判断逻辑的操作。
具体实现代码如下:
// 判断性质1:是偶数
bool isEven = (x % 2 == 0);
// 判断性质2:大于 4 且不大于 12
bool isInRange = (x > 4 && x <= 12);
对这四个人的判断的具体代码如下:
// 判断小 A 的喜好条件
bool likesA = isEven && isInRange;
// 判断 Uim 的喜好条件
bool likesUim = isEven || isInRange;
// 判断小 B 的喜好条件
bool likesB = (isEven && !isInRange) || (!isEven && isInRange);
// 判断正妹的喜好条件
bool likesGirl = !isEven && !isInRange;
具体可以编译运行的代码如下:
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
// 判断性质1:是偶数
bool isEven = (x % 2 == 0);
// 判断性质2:大于 4 且不大于 12
bool isInRange = (x > 4 && x <= 12);
// 判断小 A 的喜好条件
bool likesA = isEven && isInRange;
// 判断 Uim 的喜好条件
bool likesUim = isEven || isInRange;
// 判断小 B 的喜好条件
bool likesB = (isEven && !isInRange) || (!isEven && isInRange);
// 判断正妹的喜好条件
bool likesGirl = !isEven && !isInRange;
// 输出结果
cout << (likesA ? 1 : 0) << " "
<< (likesUim ? 1 : 0) << " "
<< (likesB ? 1 : 0) << " "
<< (likesGirl ? 1 : 0) <<endl;
return 0;
}
这道题我想告诉大家的是,合理利用C++中的bool类型的值,可以帮助我们规避复杂的逻辑判断。
浙公网安备 33010602011771号