当前位置: 首页 > news >正文

数字喜好判断之谜

        

        最近遇到了一道很有意思的C++题目,今天就来和大家分享一下我是如何用 C++ 解决这道题目的。



题目描述

       有这样一个关于数字喜好的问题:

        对于一个自然数,有两个判断标准。

        1.该数为偶数;

        2.该数大于 4 且不大于 15 。

        轩轩喜欢同时满足这两个条件的数;小念喜欢满足其中一个条件的数;小津喜欢这两个条件都不满足的数。输入一个数字,然后依次输出三人对这个数字的喜好情况,喜欢用 1 表示,不喜欢用 0 表示,三个人的结果之间用一个空格隔开。

        例如:

        输入 12

        输出 1 1 0
 


题目分析


        拿到这道题,我们首先要明确如何在 C++ 中表达这两个判断标准。对于判断一个数是否为偶数,我们可以通过取余运算,判断该数除以 2 的余数是否为 0 。而对于判断一个数是否大于 4 且不大于 15 ,可以直接使用比较运算符来实现。
 
        Then,根据轩轩、小念、小津不同的喜好规则进行判断。轩轩喜欢同时满足两个条件的数,这就需要使用逻辑与运算符  &&  来连接两个条件进行判断;小念喜欢满足其中一个条件的数,此时要用逻辑或运算符  ||  来判断;小津喜欢两个条件都不满足的数,也就是对两个条件取反后再使用逻辑与运算符  &&  来判断。(逻辑运算符详见上一篇)

        分析完毕,开始做题了。


小试锋芒,自信满满

        第一版代码出炉:

#include <iostream>
using namespace std;int main() {int num;cin >> num;// 判断轩轩是否喜欢if (num % 2 == 0 && 4 < num <= 15) {cout<<"1"<<" ";}else{cout<<"0"<<" ";}// 判断小念是否喜欢if (num % 2 == 0 || (4 < num <= 15)) {cout<<"1"<<" ";}else{cout<<"0"<<" ";}// 判断小津是否喜欢if (!(num % 2 == 0 && 4 < num <= 15)) {cout<<"1";}else{cout<<"0";}return 0;
}

谁知,按下运行键,却无法执行......


陷入困境,寻找方法

       

        我百思不得其解,老师一句话点拨了我:“4<num<=15”这种写法不存在。哦!那看来,只能用&&了!原来如此,看来这和数学里的不一样!


重振旗鼓,成功破解

        欧克OK!

        

#include <iostream>
using namespace std;int main() {int num;cin >> num;// 判断轩轩是否喜欢if (num % 2 == 0 && (num < 4 && num <= 15)) {cout<<"1"<<" ";}else{cout<<"0"<<" ";}// 判断小念是否喜欢if (num % 2 == 0 || (num < 4 && num <= 15)) {cout<<"1"<<" ";}else{cout<<"0"<<" ";}// 判断小津是否喜欢if (!(num % 2 == 0 && num < 4 && num <= 15)) {cout<<"1";}else{cout<<"0";}return 0;
}

轻轻一修改,完成!


总结
 
 
        

        希望我的分享对同样在学习 C++ 的小伙伴们有所帮助。如果大家有更好的解法或者发现我的代码有什么不足之处,欢迎在评论区留言交流呀,让我们一起在 C++ 的编程世界里共同进步!

附录

更简便的方法>~<

#include <iostream>
using namespace std;

int main() {
    int num;
    cin >> num;

    int xuan = 0;
    int nian = 0;
    int jin = 0;

    // 判断轩轩是否喜欢
    if (num % 2 == 0 && num > 4 && num <= 15) {
        xuan = 1;
    }

    // 判断小念是否喜欢
    if (num % 2 == 0 || (num > 4 && num <= 15)) {
        nian = 1;
    }

    // 判断小津是否喜欢
    if (num % 2!= 0 && (num <= 4 || num > 15)) {
        jin = 1;
    }

    cout << xiaoming << " " << xiaohong << " " << xiaozhuang << endl;

    return 0;
}

                                                                                                //嘻嘻(●'◡'●)

相关文章:

  • 财务管理域——绩效管理系统设计
  • 代理专栏总结
  • 【微知】/proc中如何查看Linux内核是否允许加载内核模块?(/proc/sys/kernel/modules_disabled)
  • SpringBoot UserAgentUtils获取用户浏览器 操作系统设备统计 信息统计 日志入库
  • Arduino+ESP01S烧录
  • 【数据结构】优先级队列
  • 基于共享上下文和自主协作的 RD Agent 生态系统
  • 【计算机网络】TCP的四种拥塞控制算法
  • 驱动开发(1)|鲁班猫rk356x内核编译,及helloworld驱动程序编译
  • 学习设计模式《六》——抽象工厂方法模式
  • Android Gradle插件开发
  • 4月26日随笔
  • 毕业项目-基于深度学习的入侵检测系统
  • asammdf 库的信号处理和数据分析:深入挖掘测量数据
  • CSS 定位学习笔记
  • 使用Django框架表单
  • flutter 引擎初始化
  • 【Castle-X机器人】四、智能机械臂安装与调试
  • java基础之枚举和注解
  • Python-MCPServer开发
  • 央行召开落实金融“五篇大文章”总体统计制度动员部署会议
  • 五一假期如何躺赚利息?来看国债逆回购操作攻略
  • 从腰缠万贯到债台高筑、官司缠身:尼泊尔保皇新星即将陨落?
  • 周口一乡镇公务员“被老赖”,两年4场官司均败诉,市监局将线索移送公安厅
  • 从 “沪惠保” 到 “沪骑保”看普惠保险的 “上海样式”
  • “富卫保险冠军赛马日”创双纪录,打造赛马旅游盛宴,印证香港联通国际优势