JavaScript is required

Cho thuật toán:

Procedure Test (n:integer);

Begin

If (n>0) and (n<10) then Write(n) 

If n>=10 then begin

Write(n mod 10);

Test (n div 10);

End;

End;

Với n=151. Kết quả nào đúng trong số những kết quả dưới đây?

A.

1

B.

15

C.

151

D.

150

Trả lời:

Đáp án đúng: C


Thuật toán Test(n) in ra các chữ số của n theo thứ tự ngược lại.

Khi n = 151, thuật toán thực hiện như sau:

  1. n >= 10, in ra n mod 10 = 151 mod 10 = 1.
  2. Gọi Test(n div 10) = Test(151 div 10) = Test(15).
  3. Trong Test(15), vì n >= 10, in ra n mod 10 = 15 mod 10 = 5.
  4. Gọi Test(n div 10) = Test(15 div 10) = Test(1).
  5. Trong Test(1), vì (n > 0) and (n < 10), in ra n = 1.

Vậy, kết quả in ra là 151.

Câu hỏi liên quan