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

【题目来源】

洛谷: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
posted @ 2026-02-16 08:09  团爸讲算法  阅读(0)  评论(0)    收藏  举报