30/09/2018, 23:34
Giúp đỡ bài tập C++
nhập vào nam và in ra những tháng bắt đầu từ thứ 2. anh/chị giúp e với e k có ý tưởng nào ạ. :(((
Bài liên quan
nhập vào nam và in ra những tháng bắt đầu từ thứ 2. anh/chị giúp e với e k có ý tưởng nào ạ. :(((
Trước tiên chọn một năm làm mốc start. Chương trình của bạn sẽ tính các năm >= năm này.
Ví dụ Chọn năm 1 SCN, ngày 01/01/0001 là thứ 2.
Khi người dùng nhập vào năm xxxx.
+, tính xem giữa năm x và năm mốc có bao nhiêu năm nhuận ( ví dụ có a năm nhuận ) chú ý nếu xxx là năm nhuận thì không tính nó ( xét riêng bên dưới )
+, tìm xem ngày 01/01/xxxx là thứ mấy ( (365 * (xxxx - 1) + a) là số ngày, chia lấy dư cho 7 là tìm được thứ )
+, Gọi n = Sum( Số ngày tháng 1 -> tháng n) , chia lấy dư cho 7 tìm ra thứ của ngày 01/0n. ( chú ý xét tháng 2 cho năm nhuận )
+, lưu trữ các tháng trên và in ra .
"anh giải thích giúp em đoạn này lại được k ạ e vẫn không hiểu lắm ạ :“tìm xem ngày 01/01/xxxx là thứ mấy ( (365 * (xxxx - 1) + a) là số ngày, chia lấy dư cho 7 là tìm được thứ )”
số ngày chênh lệch giữa năm 0001 và 0002 là 365, năm 0003 là 365*2 , … do có năm nhuận nên số ngày này cộng thêm a năm nhuận ( mỗi năm mhuận tăng 1 ngày là 366)
tìm được số ngày này, chia lấy dư cho 7 ( số ngày 1 tuần ) thu được : dư 0 thì 01/01 là thứ 2, dư 1 là thứ 3,…
em bị sai phần lôgic. anh có thể xem giúp em được không ạ ((
Xét bài toán trên đơn giản tí: In số năm bắt đầu bằng thứ hai. Ta cần 2 hàm:
2. Chạy lặp từ năm 1, cứ mỗi năm thì cộng số ngày của năm trước. Nếu tổng đấy mà %7 == 1 thì đó là năm cần tìm.
Áp dụng tương tự sẽ làm được bài tìm tháng.
P/s: Ngày 1-1-1 là chủ nhật