下面程序输入36,输出是10。 a=[3,5,7,11,13,16,21,24,28,32,36,40,46] x = int(input()) found = -1 left = 0 #第一个元素下标 right = len(a)-1 #最后一个元素下标 while left<right: mid = (left + right) // 2 if a[mid] > x: right = mid - 1 elif a[mid] < x: left = mid + 1 else: # a[mid]==x found = mid break print(found)
时间: 2023-11-15 14:05:03 浏览: 427
不完全正确。虽然程序的输入36,输出为10,但是当输入不在a中的数字时,程序会输出-1,而不是找不到该数字的提示信息。因此,应该在程序最后加上判断,如果found为-1,则输出“未找到该数字”的提示信息。以下是修改后的程序:
```
a=[3,5,7,11,13,16,21,24,28,32,36,40,46]
x = int(input())
found = -1
left = 0 #第一个元素下标
right = len(a)-1 #最后一个元素下标
while left<=right: #修改为<=
mid = (left + right) // 2
if a[mid] > x:
right = mid - 1
elif a[mid] < x:
left = mid + 1
else: # a[mid]==x
found = mid
break
if found == -1:
print("未找到该数字")
else:
print(found)
```
阅读全文