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?
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:
- Vì
n >= 10, in ran mod 10 = 151 mod 10 = 1. - Gọi
Test(n div 10) = Test(151 div 10) = Test(15). - Trong
Test(15), vìn >= 10, in ran mod 10 = 15 mod 10 = 5. - Gọi
Test(n div 10) = Test(15 div 10) = Test(1). - Trong
Test(1), vì(n > 0) and (n < 10), in ran = 1.
Vậy, kết quả in ra là 151.





