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


Đoạn code trên thực hiện thuật toán Euclid để tìm ước chung lớn nhất (UCLN) của hai số nguyên a và b. Thuật toán này hoạt động dựa trên nguyên lý: UCLN(a, b) = UCLN(b, a mod b). Nếu a = 0 hoặc b = 0, thì UCLN(a, b) = a + b (trong trường hợp một trong hai số bằng 0, UCLN là số còn lại). Nếu a > b, thì UCLN(a, b) = UCLN(a - b, b); ngược lại, UCLN(a, b) = UCLN(a, b - a). Đoạn code lặp lại quá trình này cho đến khi một trong hai số bằng 0.

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