Python第三周练习
1. 鸡兔同笼
【描述】
一个笼子里面关了若干只鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里脚的总数为a,则笼子里面至少有多少只动物,至多有多少只动物?
【输入】
第1行输入一个正整数n(n≤1000),表示测试数据的组数n,接下来n组测试数据每组一行,每行一个正整数a(a<32768)。
示例 1 :
2
3
20
【输出】
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数之间用一个空格分开。输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数之间用一个空格分开。 如果没有满足要求的答案,则输出两个0。
示例 1 :
0 0
5 10
【代码】
n = int(input("输入一个正整数n:"))
for i in range(n):
a = int(input())
if a<32768:
xmin = a%4
xmax = a%2
if xmin==0 and xmax==0:
print("{:.0f} {:.0f}".format(a/4,a/2))
else:
print(0,0)
else:
print(0, 0)
2. 算24
【描述】
给出4个小于10的正整数,可以使用加、减、乘、除4种运算以及括号把4个数连接起来得到一个表达式。现在问题是,是否存在一种方式使得所得表达式的结果等于24。
这里加、减、乘、除以及括号的运算结果和运算优先级跟平常定义一致。
例如,对于5,5,5,1,可知5×(5-1/5)=24。又如,对于1,1,4,2无论如何都不能得到24
【输入】
在代码中的输入部分输入4个小于10的正整数。
示例 1 :
5
5
5
1
【输出】
对于每一组测试数据,输出一行,如果可以得到24,输出"YES"其算法;否则“NO”。
示例 1 :
YES
((5-(1/5))*5)
【代码】
from itertools import permutations
n1 = input("请输入第一个数:\n")
n2 = input("请输入第二个数:\n")
n3 = input("请输入第三个数:\n")
n4 = input("请输入第四个数:\n")
n = n1+n2+n3+n4
sum = 1
for i in n:
sum *= eval(i)
if sum < 24:
print("NO")
exit()
notation = ['+', '-', '*', "/"]
st = set()
num = 0
number = set(permutations(n))#将n进行相应的排列组合
for i in notation:
s = i
t1 = notation.copy()
t1.remove(i)