废柴居士 发表于 2022-10-17 15:12:00

求求看看这个该怎么写呢

题目描述

奶牛Brown总是在寻找合适的就餐处。今天,它走到了一条小路,路牌上写着小路的名字。这条路有两侧,左侧是一片空地,右侧也是一片空地。Brown用眼睛估算了两侧空地的长草情况,现在它想把这条路的情况记在笔记本上。 具体来说,它想记录下这条路的名字、适合就餐的位置(只有当一个位置的两侧都长草时,Brown才会认为这是一个合适的就餐处)和可以就餐的位置(当一个位置的两侧至少有一侧长草时,Brown认为这是一个可以就餐的位置)。 但Brown是一头奶牛,不方便写字,所以它请你来帮忙。

输入

输入一共有两行; 第一行是一个长度不超过10的字符串,表示小路的名字; 第二行包括两个以空格分隔的十进制数,表示小路左、右两侧的长草情况(此数若用二进制表示,为1的位置表示长草,为0的位置表示不长草)。

输出

输出三行。第一行是一个字符串,即小路的名字; 第二行是一个十进制数,表示适合就餐的位置(此数如果用二进制表示,为1的位置表示适合就餐,为0的位置不适合); 第三行是一个十进制数,表示可以就餐的位置(此数如果用二进制表示,为1的位置表示可以就餐,为0的位置不可以)。

输入样例1

Lane
3 5
输出样例1

Lane
1
7
样例解释

第二行输入的第一个数3表示小路左侧长草情况,其对应的二进制数为011,从左往右数,第2位和第3位为1,表示这两个位置长草;输入的第二个数5表示小路右侧长草情况,其对应的二进制数为101,从左往右数,第1位和第3位均为1,表示这两个位置长草。 则根据题意,两个输入进行按位与运算,有:011&101=001,可见某个位置左侧和右侧都为1的只有第三个位置,故只有最右边的位置适合就餐。而只要一个位置的两侧至少有一侧长草,则认为可以就餐,即只要两个输入的十进制数所对应的二进制数某一位为1,该位置就可以就餐。两个输入进行按位或运算,有:011 | 101=111,故三个位置都可以就餐。所以适合就餐的位置情况是001,十进制表示为1;可以就餐的位置情况是111,十进制表示为7。

wp231957 发表于 2022-10-17 15:16:52

a,b=map(int,input().split())
print(a&b,a|b)

tommyyu 发表于 2022-10-17 15:20:44

name = input()
temp = input().split()
a, b = int(temp), int(temp)
print(name)
print(a & b)
print(a | b)
页: [1]
查看完整版本: 求求看看这个该怎么写呢