一、题目
题目来源 洛谷P5710
问题描述
一些整数可能拥有以下的性质:
性质 1:是偶数;
性质 2:大于4且不大于 12
小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x,请问他们是否喜欢这个整数?
输入
输入一个整数 x(0≤x≤1000)
输出
4 个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。
样例
输入 | 输出 |
---|---|
12 | 1 1 0 0 |
二、解析
为了解这个问题,我们可以通过检查输入的整数是否满足上述条件来决定这四个人是否喜欢这个数字。我们将依次检查每个条件,然后根据这些条件输出四个数字,每个数字代表一个人,1 表示喜欢,0 表示不喜欢。
定义一个函数 check_preferences,用于检查一个整数 x 是否符合四个不同人物的偏好条件。每个人物根据整数的两个性质——是否是偶数以及是否在特定的数值范围内——来决定他们是否喜欢这个数字。下面是各个条件的解释:
性质定义
prop1 = x % 2 == 0:检查 x 是否为偶数。
prop2 = 4 < x <= 12:检查 x 是否大于4且不大于12。
人物的喜好条件
小 A 喜欢同时满足这两个性质的整数(即x是大于4且不大于12的偶数)。
Uim 喜欢至少满足其中一个性质的整数。
八尾勇 喜欢刚好只符合其中一个性质的整数。
正妹 喜欢不符合这两个性质的整数。
函数逻辑
函数通过逻辑判断实现了上述条件,并为每个人返回一个标志(1或0),1表示喜欢,0表示不喜欢。
三、代码实现
def check_preferences(x):
# 定义性质
prop1 = x % 2 == 0 # 性质1:是偶数
prop2 = 4 < x <= 12 # 性质2:大于4且不大于12
# 检查每个人的喜好
# 小 A 喜欢这两个性质同时成立的整数
a_likes = 1 if prop1 and prop2 else 0
# Uim 喜欢这至少符合其中一种性质的整数
uim_likes = 1 if prop1 or prop2 else 0
# 八尾勇喜欢刚好有符合其中一个性质的整数
bawei_likes = 1 if (prop1 or prop2) and not (prop1 and prop2) else 0
# 正妹喜欢不符合这两个性质的整数
beauty_likes = 1 if not (prop1 or prop2) else 0
return a_likes, uim_likes, bawei_likes, beauty_likes
# 读取输入
x = int(input())
# 输出每个人是否喜欢这个数字
print(*check_preferences(x))