Tôi đang làm việc với các bài toán thực hành cho một bài kiểm tra mà tôi có, và mọi ví dụ về biến thể vòng lặp đều giảm theo mỗi lần lặp của vòng lặp. Trên cái này, các giá trị vẫn giữ nguyên khi a <b. Những nỗ lực của tôi cũng mang lại cho tôi một biến thể vòng lặp có khả năng âm tính vì đôi khi a trở nên lớn hơn b và ngược lại. Có lời khuyên nào về việc cố gắng tìm và chứng minh biến thể vòng lặp cho câu hỏi này không?
def mystery(a,b):
# Precondition: a >= 0 and b >= 0
while a >= 0 and b >= 0:
if a < b:
a, b = b, a
else:
a = a - 1
return a
EDIT: Đối với bất kỳ ai quan tâm đến câu hỏi này, giải pháp tốt nhất của tôi là như sau.