Select the statement that is most correct.
2 phương ánCó giải thích
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: "Tail recursion is a special case of recursion in which the last operation of the function, the tail call, is a recursive call.". Đệ quy đuôi được định nghĩa bằng vị trí của lời gọi: lời gọi đệ quy là việc CUỐI CÙNG hàm làm, sau nó không còn phép tính nào chờ kết quả trả về. Nhờ vậy khung hoạt động hiện tại không cần giữ lại, và trình biên dịch có thể thay lời gọi bằng một bước nhảy, biến đệ quy thành vòng lặp chạy với bộ nhớ ngăn xếp hằng số. Phương án "Tail recursion is a special case of recursion in which the first operation of the function, is a recursive call." đặt lời gọi ở đầu hàm; khi đó sau lời gọi vẫn còn phần thân phải chạy nên mỗi lần gọi đều phải giữ khung hoạt động lại, ngăn xếp lớn theo độ sâu đệ quy. Đó là đệ quy thường, chính dạng cho ta những bài như in ngược dãy số dư, và nó không hưởng được phép tối ưu lời gọi đuôi.
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