Consider the following function:
4 phương ánCó giải thích
void printOut(int n)
{if (n==0) return;
System.out.print(n);
printOut(n-1);
System.out.println(n);
}What is the output when the statement printOut(3); is run?
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "321123". Hàm in n trước khi gọi printOut(n-1) rồi in n thêm một lần sau khi lời gọi ấy trở về, nên mỗi tầng góp hai lần in nằm ở hai phía của đệ quy. Lượt đi in 3, 2, 1 theo chiều giảm; tới printOut(0) thì lệnh return cắt ngay nên tầng ấy không in gì; lượt về in 1, 2, 3 theo chiều tăng. Dãy "123321" là ảnh ngược của kết quả đúng, nó ứng với việc đặt lệnh in thứ nhất sau lời gọi đệ quy và lệnh in thứ hai trước. Dãy "321321" lặp nửa giảm hai lần, như thể cả hai lệnh in đều nằm trước lời gọi. Dãy "123123" lặp nửa tăng hai lần, như thể cả hai lệnh in đều nằm sau lời gọi, lúc đó trên đường đi xuống không có gì được in.
Cùng phần 3
Consider the following function:
void fun(int n)
{if(n > 0)
{System.out.print(" " + n );
fun(n-2);
}
}
What is the output when the statement fun(9); is run?Có lời giảiCâu hỏiConsider the following function:
void fun(int n)
{int m = n/2;
int k = n%2;
if (m > 0)
{fun(m);
}
System.out.print(k + " ");
}
What is the output when the statement fun(11); is run?Có lời giảiCâu hỏiConsider the following function:
int fun(int n)
{if (n < 0)
return(fun(-n));
else if(n<5)
return(2);
else
return(n*fun(n/2));
}
What is the value of fun(-3)?Có lời giảiCâu hỏiCả 41 câu của chủ đề41 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây