20240327每日一题题解

20240327每日一题题解

Problem

一些整数可能拥有以下的性质:

  • 性质 1:是偶数;
  • 性质 2:大于 4 且不大于 12

小 A 喜欢这两个性质同时成立的整数;

Uim 喜欢这至少符合其中一种性质的整数;

小 B 喜欢刚好有符合其中一个性质的整数;

正妹喜欢不符合这两个性质的整数。现在给出一个整数 x,请问他们是否喜欢这个整数?

输入一个整数 x(0x1000),输出这 4 个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、小 B、正妹。

例如输入12,应输出1 1 0 0.

Solution

判断一个数是否为偶数,可以计算其除以2所得的余数是否等于0:x%2==0

判断一个数是否大于4且不大于12,即4<x12,可写成表达式4<x && x<=12。注意不能写成4<x<=12

将两个表达式的值记作ans1,ans2

小A喜欢两个性质同时成立的:ans1 && ans2

Uim 喜欢至少符合其中一种性质的:ans1 || ans2

小 B 喜欢刚好符合其中一种性质的: (!ans1 && ans2)||(ans1 && !ans2)或者简单的写成 ans1!=ans2,甚至再简单点就是ans1^ans2

正妹喜欢不符合两个性质的:(!ans1) && (!ans2)等价于!(ans1 || ans2)

Code

#include<iostream>
using namespace std;

int main()
{
	int x;
	cin>>x;
	
	bool ans1,ans2;
	ans1=(x%2==0);//也可以 if(x%2==0) ans1=1;else ans1=0;
	ans2=(x>4&&x<=12);
	
	bool xiaoA=(ans1&&ans2),Uim=(ans1||ans2),xiaoB=(ans1!=ans2),Zhengmei=!(ans1||ans2);
	cout<<xiaoA<<" "<<Uim<<" "<<xiaoB<<" "<<Zhengmei<<endl;
	return 0;
}

如果你还不太懂bool和逻辑表达式的关系,可以看看下面的:

#include<iostream>
using namespace std;

int main()
{
	int x;
	cin>>x;
	
	bool ans1,ans2;
	
	if(x%2==0)//ans1=(x%2==0);
	{
		ans1=1;
	}
	else
	{
		ans1=0;
	}
	
	if(x>4&&x<=12)//ans2=(x>4&&x<=12);
	{
		ans2=1;
	}
	else
	{
		ans2=0;
	}
	
	bool xiaoA,Uim,xiaoB,Zhengmei;
	
	if(ans1&&ans2)//xiaoA=(ans1&&ans2)
	{
		xiaoA=1;
	}
	else
	{
		xiaoA=0;
	}
	
	if(ans1||ans2)//Uim=(ans1||ans2)
	{
		Uim=1;
	}
	else
	{
		Uim=0;
	}
	
	if(ans1!=ans2)//xiaoB=(ans1!=ans2)
	{
		xiaoB=1;
	}
	else
	{
		xiaoB=0;
	}
	
	if(!(ans1||ans2))//Zhengmei=!(ans1||ans2)
	{
		Zhengmei=1;
	}
	else
	{
		Zhengmei=0;
	}
	
	cout<<xiaoA<<" "<<Uim<<" "<<xiaoB<<" "<<Zhengmei<<endl;
	return 0;
}
posted @   Vanilla_chan  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示