小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下的桃子一半多一个,到第七天只剩一个,小猴原有几个
A=set(input("请输入一个集合:").split())
B=set(input("请输入一个集合:").split())
s=input("请输入一个运算符(-差集 +并集 &交集 ^对称集):")
def set_operation(setA,setB,symbol):
if symbol=='&':
print("交集:", setA & setB)
print("交集:", setA.intersection(setB))
elif symbol=='+':
print("并集:", setA | setA)
print("并集:", setA.union(setA))
elif symbol=='-':
print("差集:", setA - setB)
print("差集:", setA.difference(setB))
elif symbol=='^':
print("对称差集:",setA ^ setB)
print("对称差集:",setA.symmetric_difference(setB))
else:
print("请重新输入运算符!")
set_operation(A,B,s)
运行结果:
"F:\Python 3.8.0\python.exe"
请输入一个集合:1 2 3
请输入一个集合:2 3
请输入运算符(-差集 +并集 &交集 ^对称差集):-
差集: {'1'}
差集: {'1'}
进程已结束,退出代码 0
我可以解决这个问题。
解决方案如下:
根据题目提示,小猴在第一天吃掉桃子数量的一半再加上一个桃子,第二天再次吃掉桃子数量的一半再加上一个桃子,以此类推,直到第七天仅剩一个桃子。我们可以推出如下公式:
第7天:1 = (n / 2 ^6)+1
第6天:3 =(n / 2 ^5)+1
第5天:7 =(n / 2 ^4)+1
第4天:15 =(n / 2 ^3)+1
第3天:31 =(n / 2 ^2)+1
第2天:63 =(n / 2 ^1)+1
第1天:127 =(n / 2 ^0)+1
其中n为小猴最初拿到的桃子的数量。可以看出每天拿到的数量是前一天的一半再加1,可以用循环语句求解,具体代码如下:
peach = 1 for i in range(6): peach = (peach + 1) * 2 print("小猴最初拿到了{}个桃子".format(peach))
该代码段根据上述公式使用循环求解小猴最初拿到的桃子数量,并输出结果。
最终答案为:小猴最初拿到了127个桃子。
peach = 1
for i in range(6):
peach = (peach + 1) * 2
print("小猴子原来有 %d 个桃子。" % peach)