题解:洛谷 P5710 【深基3.例2】数的性质
【题目来源】
【题目描述】
一些整数可能拥有以下的性质:
- 性质 1:是偶数;
- 性质 2:大于 \(4\) 且不大于 \(12\)。
小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 \(x\),请问他们是否喜欢这个整数?
【输入】
输入一个整数 \(x(0\le x\le 1000)\)
【输出】
输出这 \(4\) 个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。
【输入样例】
12
【输出样例】
1 1 0 0
【算法标签】
《洛谷 P5710 数的性质》 #模拟#
【代码详解】
#include <bits/stdc++.h> // 包含标准库头文件(万能头文件)
using namespace std; // 使用标准命名空间
/**
* 主函数 - 程序入口
* @return 程序执行状态码(0表示成功)
*/
int main()
{
int x; // 定义输入变量x
cin >> x; // 输入整数x
// 定义两个布尔条件:
bool b1 = (x % 2 == 0); // 条件1:x是偶数
bool b2 = (x <= 12 && x > 4); // 条件2:x在5到12之间(包含12)
// 方法一(注释掉的原始方案):分别输出四个判断结果
// if(b1&&b2) cout << "1 ";
// else cout << "0 ";
// if(b1||b2) cout << "1 ";
// else cout << "0 ";
// if((b1&&!b2)||(!b1&&b2)) cout << "1 ";
// else cout << "0 ";
// if(!b1&&!b2) cout << "1 ";
// else cout << "0 ";
// 方法二(实际采用的方案):合并输出四个判断结果
if (b1 && b2) // 情况1:同时满足两个条件
{
cout << "1 1 0 0"; // 输出:满足条件1和2,不满足其他
}
else if (b1 || b2) // 情况2:满足至少一个条件
{
cout << "0 1 1 0"; // 输出:不满足同时满足,但满足至少一个
}
else // 情况3:两个条件都不满足
{
cout << "0 0 0 1"; // 输出:只满足都不满足的情况
}
return 0; // 程序正常结束
}
【运行结果】
12
1 1 0 0
浙公网安备 33010602011771号