Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Định hướng cách phân tích bài toán
09:34 23-04-2023
510 lượt xem
4 bình luận
10:39 24-04-2023
Mình có bài toán bên dưới cần viết bằng python mà chưa biết cách định hướng trước khi code. Nhờ mọi người có thể hướng dẫn em cách định hướng với ạ
VIẾT CHƯƠNG TRÌNH NHẬP VÀO MỘT DANH SÁCH SỐ NGUYÊN. ĐẾM, TÍNH TỔNG CÁC SỐ DƯƠNG VÀ VỊ TRÍ CÁC SỐ DƯƠNG ĐÓ TRONG DANH SÁCH ĐÃ NHẬP.
VÍ DỤ: N = 6; DS={-12, 5, -8, 9, 15, 3}
KẾT QUẢ IN RA MÀN HÌNH:
- TỔNG: 32
- SỐ LƯỢNG: 4
- VỊ TRÍ: 2 4 5 6
Các bước:
Nhập danh sách số nguyên từ người dùng bằng cách sử dụng hàm input và chuyển đổi đầu vào sang kiểu list.
Khởi tạo một biến
tong
bằng 0 để tính tổng các số dương.Khởi tạo một danh sách rỗng
vitri
để lưu trữ vị trí của các số dương.Sử dụng một vòng lặp để duyệt qua từng phần tử trong danh sách vừa nhập.
Trong vòng lặp, nếu phần tử đó lớn hơn 0, thì cộng giá trị của nó vào biến
tong
và thêm vị trí của nó vào danh sáchvitri
.Sau khi kết thúc vòng lặp, in ra tổng các số dương, số lượng các số dương và vị trí của các số dương đó.
n = int(input("Enter the length of the sequence: "))
lst = list(map(int, input('Enter the sequence separated by spaces: ').split()))
positive_numbers = [x for x in lst if x > 0]
s = sum(positive_numbers)
sl = len(positive_numbers)
print("Sum:", s)
print("Count:", sl)
print('Positions:', ' '.join(map(str, positive_numbers)))
Sau khi nhập được danh sách các số, ta sẽ sử dụng vòng lặp for với hàm range, lúc này với mỗi một lần lặp ta sẽ có được vị trí (index), và giá trị trong danh sách DS[index], hãy kiểm tra giá trị đó với yêu cầu đề bài (>= 0) nếu thoả thì lưu vị trí đó vào một danh sách khác.
Sau vòng lặp sử dụng lại các vị trí đã lưu để tính tổng, số lượng sẽ là số phân tử trong danh sách lưu các vị trí, và in danh sách vị trí ra màn hình.