数字喜好判断之谜
最近遇到了一道很有意思的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;
}
//嘻嘻(●'◡'●)