1.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
total = 0
h = 100 #第一次的位置
total += h
for x in range(9):#之后的九次
h /= 2
total += 2*h
print(total)
print(h/2)
2.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
score = float(input('请输入你的成绩'))
if score >= 90:
print('你的成绩等级为A')
elif score >= 60:
print('你的成绩等级为B')
else:
print('你的成绩等级为C')
3.猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
res = 1
for x in range(1,10):
res = (res+1)*2
print(res)
#逆向思维
#n -(n/2+1)=1 ==>n/2=x+1
#10 9 8 7 6 5 4 3 2 1
#1 4 10 22 46 94 190 382 766 1534
#x = x/2 -1
4.百钱百鸡是我国古代数学家张丘建在《算经》⼀书中提出的数学问题:鸡翁⼀值钱五, 鸡⺟⼀值钱三,鸡雏三值钱⼀。百钱买百鸡,问鸡翁、鸡⺟、鸡雏各⼏何?翻译成现代⽂是: 公鸡5元⼀只,⺟鸡3元⼀只,⼩鸡1元三只,⽤100块钱买⼀百只鸡,问公鸡、⺟鸡、⼩鸡各有 多少只?
##穷举法
#法一
for x in range(0,21):
for y in range(0,34):
for z in range(0,101):
if (5*x + 3*y + z//3 == 100) and (x + y + z == 100) and (z%3 == 0):
print('公鸡的数量:%d 母鸡的数量:%d 小鸡的数量:%d'%(x,y,z))
#法二
x = 0
while x < 21:
y = 0
while y < 34:
z = 0
while z < 101:
if (5 * x + 3 * y + z / 3 == 100) and (x + y + z == 100) and z % 3 == 0:
print('公鸡的数量:%d 母鸡的数量:%d 小鸡的数量:%d' % (x, y, z))
z += 1
y += 1
x += 1