Tôi hiện đang nghiên cứu đệ quy ở trường và tôi gặp khó khăn khi nghĩ về các phương pháp khi có nhiều cuộc gọi đệ quy. Tôi chỉ muốn hỏi làm thế nào bạn nên suy nghĩ về đệ quy bởi vì tôi biết truy tìm các cuộc gọi phương pháp theo từng bước sẽ trở nên quá tẻ nhạt.Bạn nên tiếp cận đệ quy như thế nào?
Thay vì truy tìm từng cuộc gọi đệ quy, điều chúng tôi đã đề cập ngắn gọn là suy nghĩ về đệ quy bằng cảm ứng, nhưng vấn đề tôi gặp phải là cảm ứng có thể áp dụng cho các tình huống khác với toán học. Giống như nếu có một phương pháp mà đệ quy in ra số như thế này:
public void blah(int n)
{
for (int i = 0; i < n; i++)
blah(i);
System.out.print(n);
}
tôi gặp khó khăn khi suy nghĩ về những gì in ra, và tôi không thể nhìn thấy như thế nào cảm ứng có thể là liên quan ở đây (tha thứ ngu dốt của tôi nếu nó có thể được được sử dụng ở mọi nơi).
Nhưng tôi đoán câu hỏi thực sự của tôi là cách bạn có thể giải quyết đệ quy mà không phải theo dõi mọi cuộc gọi phương thức đơn lẻ? Là điều tốt nhất để làm chỉ để xem trường hợp cơ bản và loại công việc ngược? (Nhưng ngay cả sau đó tôi nghĩ rằng tôi nhận được mờ về những gì sẽ xảy ra).
Có vẻ như, một trong những người cao niên của bạn ở trường đã hỏi điều này trước đây. Xem tại đây: http://stackoverflow.com/questions/717725/understanding-recursion –
@CowZow: related: http://stackoverflow.com/questions/105838/real-world-examples-of-recursion – Jayan