Đệ quy trong Java
Học Java bắt đầu với Hello, World
Tự làm quen với các bài tập và gửi đoạn code đầu tiên của bạn bằng cách hoàn thành bài đầu tiên "Hello, World!".
Luyện tập
Đệ quy Java
  • Đệ quy là kỹ thuật thực hiện lời gọi hàm. Kỹ thuật này cung cấp một cách để chia nhỏ các vấn đề phức tạp thành các vấn đề đơn giản dễ giải quyết hơn.
  • Đệ quy có thể hơi khó hiểu. Cách tốt nhất để tìm ra cách thức hoạt động của nó là thử nghiệm với nó.
Ví dụ đệ quy

    Cộng hai số với nhau thì dễ nhưng cộng một dãy số thì phức tạp hơn. Trong ví dụ sau, đệ quy được sử dụng để cộng một dãy số với nhau bằng cách chia nhỏ nó thành nhiệm vụ đơn giản là cộng hai số.

Ví dụ
Compiler
Giải thích

    Khi sum() hàm được gọi, nó sẽ thêm tham số k vào tổng của tất cả các số nhỏ hơn k và trả về kết quả. Khi k trở thành 0, hàm chỉ trả về 0. Khi chạy, chương trình thực hiện theo các bước sau:

10 + tổng(9)
10 + ( 9 + tổng(8) )
10 + ( 9 + ( 8 + tổng(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + tổng(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0

Vì hàm không tự gọi khi k = 0 nên chương trình dừng tại đó và trả về kết quả.

Điều kiện dừng

    Khi sum() hàm được gọi, nó sẽ thêm tham số k vào tổng của tất cả các số nhỏ hơn k và trả về kết quả. Khi k trở thành 0, hàm chỉ trả về 0. Khi chạy, chương trình thực hiện theo các bước sau:

10 + tổng(9)
10 + ( 9 + tổng(8) )
10 + ( 9 + ( 8 + tổng(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + tổng(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0

Vì hàm không tự gọi khi k = 0 nên chương trình dừng tại đó và trả về kết quả.

Ví dụ
Compiler
Một số bài viết liên quan
Devsne VN 10482 lượt xem

Hướng dẫn đẩy thư viện Java lên Nexus Repostory

Devsne VN 8399 lượt xem

Prototypes, constructors và call, apply, bind trong Javascipt.

Devsne VN 1364 lượt xem

Static Variables in Java – Why and How to Use Static Methods

Devsne VN 10287 lượt xem

Tất tần tật về Optional trong java, check Null đơn giản hơn bao giờ hết! P1

Devsne VN 4364 lượt xem

Hướng dẫn crawl các trang web có nội dung tạo bởi javascript sử dụng chromedp với golang

Devsne VN 9974 lượt xem

Tìm hiểu về HOF và Currying trong JavaScript

Devsne VN 10434 lượt xem

Cải thiện hiểu xuất bằng Debounce trong JavaScript

Devsne VN 2905 lượt xem

40 JavaScript Projects cho Beginners (Phần 1)

Devsne VN 8227 lượt xem

Unexplored JavaScript Features You Need to Try

Devsne VN 2897 lượt xem

Getting Started with JavaScript: Part 1