Consider the following function:
4 phương ánCó giải thích
void foo(int n)
{int m = n/2;
int k = n%2;
if (m > 0)
{foo(m);
}
System.out.print(k + " ");
}What is the output when the statement foo(13); 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: "1 1 0 1". Mỗi tầng tính m bằng n/2, k bằng n%2, gọi foo(m) khi m còn lớn hơn 0 rồi mới in k, nên các chữ số dư được in theo chiều quay về, từ tầng sâu nhất ra ngoài. foo(13) có k bằng 1 và gọi foo(6); foo(6) có k bằng 0 và gọi foo(3); foo(3) có k bằng 1 và gọi foo(1); foo(1) có m bằng 0 nên dừng rồi in 1. Quay về in tiếp 1 của foo(3), 0 của foo(6), 1 của foo(13), đúng là biểu diễn nhị phân của 13. Dãy "1 0 1 1" chính là thứ tự các dư lúc được sinh ra, tức kết quả nếu in trước khi gọi đệ quy, và nó đọc ra số 11. Dãy "1 0 0 1" đọc ra số 9, ứng với chuỗi chia đôi 9, 4, 2, 1 chứ không phải của 13. Dãy "1 0 1 0" đọc ra số 10, ứng với chuỗi 10, 5, 2, 1, cũng không khớp với 13, 6, 3, 1.
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