Consider the following function:
4 phương ánCó giải thích
void fun(int n)
{if (n <= 0)
System.out.println("Hello");
else
{for(int i = 0; i < n; i++)
System.out.print("$");
System.out.println( );
fun(n - 2);
}
}What is the output when the statement fun(5); 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: "$$$$$ $$$ $ Hello", tức bốn dòng lần lượt là năm ký tự đô la, ba ký tự, một ký tự rồi chữ Hello. Lời gọi fun(5) thấy n lớn hơn 0 nên vòng for chạy với i từ 0 tới 4, in đúng 5 ký tự rồi xuống dòng, sau đó gọi fun(3) in 3 ký tự, fun(1) in 1 ký tự, cuối cùng fun(-1) có n nhỏ hơn hoặc bằng 0 nên in Hello và dừng; vì lệnh in nằm trước lời gọi đệ quy nên dòng dài nhất ra trước và Hello ra sau cùng. Dãy "Hello $$$$$ $$$ $" đặt Hello lên đầu, nhưng Hello chỉ được in ở lời gọi sâu nhất nên nó phải đứng cuối. Dãy "$$$$ $$ $ Hello" đếm sai số ký tự: điều kiện i nhỏ hơn n cho đúng n ký tự mỗi dòng, tức 5, 3, 1 chứ không phải 4, 2, 1. Dãy "$ $$$ $$$$$ Hello" xếp từ ngắn tới dài, trái với việc n giảm hai đơn vị sau mỗi dòng đã 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