Cho phương trình dạng a + b = c, trong đó một trong ba số a, b, c bị thiếu (được thay bằng ?). Tìm số bị thiếu.
Ví dụ: ? + 4 = 9 -> kết quả 5.
Thuật toán giải quyết
- Xóa khoảng trắng, thay
+và=bằng dấu phẩy. - Tách chuỗi thành mảng
elements. - Tìm chỉ số
idxcủa phần tử không phải số (là?). - Nếu
idx == 2(thiếu c): trả vềa + b. - Nếu
idx == 1(thiếu b): trả vềc - a. - Nếu
idx == 0(thiếu a): trả vềc - b.
Ví dụ minh họa
def find_missing(string):
string = string.strip().replace(' ', '')
string = string.replace('=', ',')
string = string.replace('+', ',')
elements = string.split(',')
idx = 0
for i in range(len(elements)):
if not elements[i].isnumeric():
idx = i
break
if idx == 2:
return int(elements[0]) + int(elements[1])
elif idx == 1:
return int(elements[2]) - int(elements[0])
elif idx == 0:
return int(elements[2]) - int(elements[1])
print(find_missing('6 + 8 = ?')) # 14
print(find_missing('? + 8 = 20')) # 12
print(find_missing('5 + ? = 15')) # 10
Đầu vào
'6 + 8 = ?', '? + 8 = 20', '5 + ? = 15'
Đầu ra
14 12 10