C6-07 · Tách chẵn lẻ

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Cho một dãy ~n~ số nguyên có ít nhất một số chẵn và ít nhất một số lẻ. Dùng hai biểu thức tạo danh sách để tách dãy: in các số chẵn trên dòng 1, các số lẻ trên dòng 2, giữ nguyên thứ tự xuất hiện trong dãy.

Dữ liệu vào

  • Dòng 1: số nguyên ~n~.
  • Dòng 2: ~n~ số nguyên ~a_1, \ldots, a_n~, cách nhau một dấu cách.

Kết quả

  • Dòng 1: các số chẵn của dãy theo thứ tự xuất hiện.
  • Dòng 2: các số lẻ của dãy theo thứ tự xuất hiện.

Các số cách nhau một dấu cách; số trùng nhau thì in đủ số lần.

Ràng buộc

  • ~2 \le n \le 100~.
  • ~-10^9 \le a_i \le 10^9~; dãy có ít nhất một số chẵn và một số lẻ.

Ví dụ

Dữ liệu vào:

6
5 8 -3 0 12 7

Kết quả:

8 0 12
5 -3 7

Giải thích ví dụ

Số chẵn (chia hết cho 2) theo thứ tự xuất hiện: 8, 0, 12 — số 0 cũng là số chẵn. Số lẻ: 5, −3, 7. Trong Python -3 % 2 bằng 1, nên điều kiện x % 2 != 0 (hoặc x % 2 == 1) nhận đúng cả số lẻ âm.

Lưu ý

  • Lọc ra danh sách mới; đừng xóa phần tử khỏi danh sách đang duyệt (mục 6.10 — hai số chẵn đứng liền nhau sẽ bị sót).
  • "Chẵn" nói về giá trị, không phải vị trí: ds[::2] là phần tử ở chỉ số chẵn, khác hẳn.
  • Không sắp xếp; giữ thứ tự xuất hiện.
  • Hệ thống chỉ chấm kết quả; yêu cầu "dùng hai biểu thức tạo danh sách" do giảng viên xem khi chấm tay.

Nguồn trong sách: Bài C6-07, mục 6.12, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)


Đang tải...