repeatBài tập Recursion - Cơ bản

Bài tập về Đệ quy (Recursion) - Cơ bản

  1. Viết hàm đệ quy countdown(n) đếm ngược từ n về 0 và in ra mỗi số.

def countdown(n):
    # Code của bạn ở đây
    pass

# Test
countdown(5)
# Output:
# 5
# 4
# 3
# 2
# 1
# 0
  1. Viết hàm đệ quy count_up(n) đếm từ 1 đến n và in ra mỗi số.

def count_up(n):
    # Code của bạn ở đây
    pass

# Test
count_up(5)
# Output:
# 1
# 2
# 3
# 4
# 5
  1. Viết hàm đệ quy factorial(n) tính giai thừa của n.

circle-info

Base case: n = 0 hoặc n = 1, trả về 1

  1. Viết hàm đệ quy sum_to_n(n) tính tổng các số từ 1 đến n.

  1. Viết hàm đệ quy power(base, exp) tính base mũ exp.

  1. Viết hàm đệ quy fibonacci(n) tính số Fibonacci thứ n.

  1. Viết hàm đệ quy sum_digits(n) tính tổng các chữ số của một số nguyên.

circle-info

Gợi ý: Dùng n % 10 để lấy chữ số cuối, n // 10 để bỏ chữ số cuối

  1. Viết hàm đệ quy count_digits(n) đếm số lượng chữ số của một số nguyên.

  1. Viết hàm đệ quy reverse_number(n) đảo ngược một số nguyên.

  1. Viết hàm đệ quy sum_list(lst) tính tổng các phần tử trong list.

circle-info

Base case: list rỗng trả về 0

  1. Viết hàm đệ quy find_max(lst) tìm số lớn nhất trong list.

  1. Viết hàm đệ quy find_min(lst) tìm số nhỏ nhất trong list.

  1. Viết hàm đệ quy reverse_string(s) đảo ngược một chuỗi.

  1. Viết hàm đệ quy is_palindrome(s) kiểm tra chuỗi có phải palindrome không.

  1. Viết hàm đệ quy count_char(s, char) đếm số lần xuất hiện của ký tự trong chuỗi.

  1. Viết hàm đệ quy multiply(a, b) nhân hai số dương bằng cách cộng lặp đi lặp lại.

  1. Viết hàm đệ quy gcd(a, b) tính ước số chung lớn nhất của hai số (Euclidean algorithm).

circle-info

Gợi ý: gcd(a, b) = gcd(b, a % b), base case: b = 0

  1. Viết hàm đệ quy list_length(lst) tính độ dài của list (không dùng hàm len()).

  1. Viết hàm đệ quy contains(lst, item) kiểm tra item có trong list không.

  1. Viết hàm đệ quy print_list(lst) in từng phần tử của list (mỗi phần tử một dòng).

Last updated