数字喜好判断之谜

        

        最近遇到了一道很有意思的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;
}

                                                                                                //嘻嘻(●'◡'●)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值