36米粒问题
阿凡提与国王比赛下棋,国王说要是自己输了的话阿凡提想要什么他都可以拿得出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第一个格子里放1粒米,第二个格子里放2粒米,第三个格子里放4粒米,第四个格子里放8粒米,以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。需要多少粒米呢?根据题意,请完善划线处的代码。
def fun(n):
x = ①
for i in range(n):
②
return x
s = ③
for i in range(64):
s += fun( ④ )
print(s)10分
登录后作答
37查字典
假如字典为1000页,若用二分法来翻到具体指定的页码,则横线处能正确控制循环体运行的表达式是什么?请完善横线处的代码。x=int(input("请输入要查找的页码(小于1000):"))
flagleft=1
flagright=1000
n=0
while ① :
mid= (flagleft+flagright)//2
n=n+1
if mid>x:
② elif mid<x:
③ else:
break
print('需要查找的次数为:',n)10分