洛谷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类型的值,可以帮助我们规避复杂的逻辑判断。

posted @   Tomorrowland_D  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示