JavaScript is required

Thuật toán đệ quy dưới đây tính:

Function Test(a,b:Integer): Integer;

Begin 

If (a=0) or (b=0) then Test:=a+b 

Else

If a > b then Test:=Test(a-b,b)

Else Test:= Test(a,b-a);

End;

A.

Tính hiệu 2 số a và b

B.

Tìm số dư trong phép chia a cho b

C.

Tìm ước chung lớn nhất của a và b

D.

Tìm bội chung nhỏ nhất của a và b

Trả lời:

Đáp án đúng: C


Thuật toán đệ quy trên thực hiện phép trừ liên tiếp giữa a và b cho đến khi một trong hai số bằng 0. Nếu a > b, ta thay a bằng a - b. Nếu b > a, ta thay b bằng b - a. Quá trình này tương đương với thuật toán Euclid để tìm ước chung lớn nhất (ƯCLN) của hai số a và b. Khi một trong hai số bằng 0, số còn lại chính là ƯCLN của a và b ban đầu. Vì vậy, thuật toán này tính ước chung lớn nhất của a và b.

Bộ 525 câu hỏi trắc nghiệm ôn thi môn Toán rời rạc có đáp án dưới đây sẽ là tài liệu ôn tập hữi ích dành cho các bạn sinh viên. Mời các bạn cùng tham khảo!


30 câu hỏi 60 phút

Câu hỏi liên quan