Consider the following function:
5 phương ánCó giải thích
void fun(int n)
{int m = n/3;
int k = n%3;
System.out.print(k + " ");
if(m > 0)
{fun(m);
}
}What is the output when the statement fun(17); 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: "2 2 1". Hàm lấy m bằng n chia nguyên cho 3 và k bằng n chia 3 lấy dư, in k trước rồi mới gọi đệ quy với m, nên chuỗi in ra là các chữ số dư của phép đổi 17 sang cơ số 3 đọc từ thấp lên cao. Gọi fun(17): m bằng 5, k bằng 2, in 2; fun(5): m bằng 1, k bằng 2, in 2; fun(1): m bằng 0, k bằng 1, in 1, và vì m không lớn hơn 0 nên dừng. "2 0 2 1" chèn thêm một chữ số 0, chỉ có nếu một lần gọi nào đó cho dư 0, nhưng ba lần gọi cho dư lần lượt 2, 2, 1. "1 0 0 1" có bốn chữ số nên cần bốn lần chia, trong khi 17 chia cho 3 ba lần đã về 0, và dư đầu tiên của 17 là 2 chứ không phải 1. "1 2 2" là kết quả đọc ngược, chỉ xảy ra nếu lệnh in đặt sau lời gọi đệ quy. "2 0 1" dừng sớm một bước so với điều kiện m lớn hơn 0.
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