Bài tập  /  Bài đang cần trả lời

Em hãy viết chương trình yêu cầu người sử dụng nhập năm số nguyên dương - bất kì từ bàn phím, sau đó in ra màn hình năm số này theo thứ tự đảo ngược của thứ tự nhập vào. Trong chương trình có sử dụng kiểu dữ liệu ngăn xếp và các thao tác đã học trên ngăn xếp. Ví dụ: Nhập vào năm số: 3, 1, 9, 17, 2. Kết quả in ra: 2, 17,9, 1, 3.

Em hãy viết chương trình yêu cầu người sử dụng nhập năm số nguyên dương - bất kì từ bàn phím, sau đó in ra màn hình năm số này theo thứ tự đảo ngược của thứ tự nhập vào. Trong chương trình có sử dụng kiểu dữ liệu ngăn xếp và các thao tác đã học trên ngăn xếp. Ví dụ: Nhập vào năm số: 3, 1, 9, 17, 2. Kết quả in ra: 2, 17,9, 1, 3.

1 Xem trả lời
Hỏi chi tiết
7
0
0
Tôi yêu Việt Nam
11/09/2024 14:03:22

Chương trình yêu cầu người sử dụng nhập năm số nguyên dương - bất kì từ bàn phím, sau đó in ra màn hình năm số này theo thứ tự đảo ngược của thứ tự nhập vào. Trong chương trình có sử dụng kiểu dữ liệu ngăn xếp và các thao tác đã học trên ngăn xếp.

Muốn viết chương trình này ta sẽ sử dụng cấu trúc dữ liệu ngăn xếp (stack) để lưu trữ các số nguyên dương người dùng nhập vào. Ngăn xếp là một cấu trúc dữ liệu hoạt động theo nguyên lý LIFO (Last In, First Out), tức là phần tử được thêm vào cuối cùng sẽ là phần tử được lấy ra đầu tiên.

Sử dụng ngôn ngữ lập trình Python để thực hiện như sau:

class Stack:

   def __init__(self):

        self.items = []

   def push(self, item):

        self.items.append(item)

   def pop(self):

        if not self.is_empty():

            return self.items.pop()

        else:

            return None

   def is_empty(self):

        return len(self.items) == 0

   def size(self):

        return len(self.items)

def main():

   stack = Stack()

   print("Nhập vào năm số nguyên dương:")

   # Yêu cầu người dùng nhập vào 5 số nguyên dương

   for i in range(5):

        while True:

            try:

                num = int(input(f"Nhập số thứ {i+1}: "))

                if num > 0:

                    stack.push(num)

                    break

                else:

                    print("Vui lòng nhập một số nguyên dương.")

            except ValueError:

                print("Đó không phải là một số nguyên. Vui lòng thử lại.")

   # Lấy các số ra khỏi ngăn xếp và in theo thứ tự đảo ngược

   print("Các số theo thứ tự đảo ngược:")

   while not stack.is_empty():

        print(stack.pop(), end=" ")

if __name__ == "__main__":

   main()

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Câu hỏi liên quan

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×