Đảo ngược một số nguyên trong Python

Để đảo ngược một số nguyên trong Python, bạn có thể sử dụng các phương pháp chuỗi và toán tử slice hoặc dùng các phép toán số học. Dưới đây là hai cách thực hiện việc này:

Cách 1: Sử dụng chuỗi và slice

# Chuyển số nguyên thành chuỗi
so_nguyen = 12345
chuoi_so = str(so_nguyen)

# Sử dụng slice để đảo ngược chuỗi
chuoi_nguoc = chuoi_so[::-1]

# Chuyển lại thành số nguyên nếu cần
so_nguoc = int(chuoi_nguoc)

print("Số nguyên đảo ngược:", so_nguoc)

Cách 2: Sử dụng phép toán số học

so_nguyen = 12345
so_nguoc = 0

while so_nguyen > 0:
    # Lấy chữ số cuối cùng của số nguyên
    chu_so_cuoi = so_nguyen % 10
    
    # Thêm chữ số này vào số ngược
    so_nguoc = so_nguoc * 10 + chu_so_cuoi
    
    # Loại bỏ chữ số cuối cùng từ số nguyên ban đầu
    so_nguyen = so_nguyen // 10

print("Số nguyên đảo ngược:", so_nguoc)

Phương pháp chuyển đổi số thành chuỗi và sử dụng len có độ phức tạp thời gian là O(n), trong đó n là số chữ số trong số nguyên.

Phương pháp sử dụng phép chia và vòng lặp (phương pháp số học) có độ phức tạp thời gian tốt hơn và ổn định, với độ phức tạp là O(log10(N)), trong đó N là giá trị của số nguyên.

Ví dụ:

  • Nếu bạn có một số nguyên với 10 chữ số, phương pháp chuyển đổi thành chuỗi sẽ có độ phức tạp O(10) = O(n).
  • Còn phương pháp số học chỉ cần O(log10(10^10)) = O(10*log10(10)) = O(10), với 10 là số chữ số.

Do đó, phương pháp số học có độ phức tạp thấp hơn và hiệu quả hơn so với phương pháp chuyển đổi thành chuỗi và sử dụng len.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *