Menu
CoddyTech

Ôn tập: Lưới lịch

Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 11 trên 56.

challenge icon

Thử thách

Trung bình

Đọc ba số nguyên từ ba dòng: days (tổng số ngày trong một tháng, từ 28 đến 31), start_dow (0 = thứ Hai … 6 = Chủ nhật, ngày trong tuần mà ngày 1 rơi vào) và cols (số cột cần in ra).

In lưới lịch:

  • Thêm các mục -- vào đầu hàng thứ nhất cho đến khi khớp với ngày trong tuần (mỗi ô trống ở đầu hàng có một mục --)
  • In tất cả các ngày từ 1 đến days, mỗi ngày rộng hai ký tự (thêm một dấu cách ở đầu ngày có một chữ số, ví dụ: 1, 10)
  • Dùng một dấu cách giữa các ô trong một hàng
  • Xuống dòng sau mỗi cols mục (bao gồm cả phần đệm)

Với đầu vào 30 / 2 / 7, đầu ra là:

-- --  1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Tự làm thử

let days = Int(readLine()!)!
let startDow = Int(readLine()!)!
let cols = Int(readLine()!)!

// TODO: tạo một mảng (array) một chiều gồm các ô ("--" + chuỗi biểu thị ngày),
// sau đó in ra từng hàng gồm `cols` ô, ngăn cách nhau bằng một dấu cách

Tất cả bài học trong Logic và luồng thực thi

Tự luyện tập: Playground Swift