30/09/2018, 17:13
Xác định năm này có phải là năm nhuận hay không?
Dữ liệu đầu vào là 1 chuỗi viết theo định dạng sau: ngày/tháng/năm, trong đó:
- ngày là một số nguyên dương >= 1 và <=31
- tháng là một số nguyên dương >=1 và <=12
- năm là một số nguyên dương >=1 và <=10000
Yêu cầu: Xuất ra 2 dòng - Dòng 1: xác định năm này có phải là năm nhuận hay không?
Nếu năm nhuận thì ghi là YES
Ngược lại ghi là NO - Dòng 2: kết quả phép toán: ngày + tháng + năm, ghi theo cấu trúc:
Ngày+tháng+năm=KếtQuả
Ví dụ:
Input:
28/5/2015
Output:
NO
28+5+2015=2048
Ghi chú: cách xác định năm nhuận: năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100
Ví dụ:
Năm 1800 không phải là năm nhuận
Năm 2000 là năm nhuận
Bài liên quan
Khác nào chỉ cần chia hết cho 4?
năm 700 hoặc năm 900 thì không thỏa điều kiện bạn ơi.
bài này bạn chỉ cần mô tả điều kiện phù hợp là được thôi. Cố lên bạn.
4 năm 1 lần có 1 năm nhuận, mà năm nhuận gần nhất là 2012 mod 4 = 0 => năm nhuận là năm chia hết cho 4 thôi mà ?
như thế này mới đủ @ntridan
Lấy 2 số cuối mà chia hết cho 4 là đủ kết luận năm nhuận.
Mình vẫn thấy có gì đó k logic. Năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100.
Năm chia hết cho 400 thì tất nhiên là chia hết cho 4 rồi, còn chia hết cho 4 mà không chia hết cho 100 là những năm mà số của nó chia hết cho 4 còn lại (những năm không chia hết cho 400). Một số chia hết cho 400 là một số vừa chia hết cho 4 vừa chia hết cho 100 đúng không nhỉ ?
Nếu chỉ chia hết cho 4 là năm nhuận vậy thì các năm 1800, 1900 là nhuận hết sao
Hình như là lịch mình đang dùng có sự cộng thêm/bớt đi gì đó nên mới có hiện tượng này thì phải
Ừ vì 1800 nó chia hết cho 400, còn 1900 nó chia hết cho 4 mà không chia hết cho 100 (Theo như điều kiện logic của bài toán :)))
Điều kiện là (n chia hết cho 4) hoặc (n chia hết cho 4 mà không chia hết cho 100) mà :v Thỏa 1 trong 2 điều kiện trên máy sẽ trả kết quả là TRUE :))
Năm nhuận
Năm nhuận là năm: để đảm bảo đồng bộ việc lặp lại của năm trên lịch với năm thiên văn hay năm thời tiết. Trong trường hợp dương lịch thì các mùa và các sự kiện thiên văn không lặp lại chính xác sau một số nguyên các ngày, vì thế năm dương lịch cứ sau một khoảng thời gian nhất định phải thêm vào một ngày để đảm bảo việc chỉnh lại các sai số do làm tròn năm. Trong trường hợp âm dương lịch như lịch Trung Quốc thì do một chu kỳ quay của Mặt Trăng quanh Trái Đất là khoảng 29,53 ngày nên một năm âm ...
How could the year 2000 be a leap year when 1900 was not?
February is an unusual month, especially when it comes to leap years. In this article, you can read about why we use leap years and how the year 2000 was a leap year and 1900 was not.
Nói chung mình thấy điều kiện logic của bài toán có vấn đề, nếu mình là cái máy tính thực hiện thuật toán này thì khi gặp năm 1900 mình vẫn sẽ trả giá trị là TRUE do nó vẫn chia hết cho 4
Trong link kia có nói thế này , khả năng là có liên quan
(sự kiện Y2K)
Không biết có cách nào để làm thuật toán này chính xác hơn không nhỉ :))
tiên đề mà bạn biết có vấn đề thôi, chứ logic của bạn thì không có vấn đề gì cả.
1900 chia hết cho 100 nên nó không thỏa đó bạn. nếu nó có dạng xx00 thì nó phải chia hết cho 400 thì nó mới là năm nhuận.
Nãy giờ đúng là suy nghĩ của mình có vấn đề =)) chính mình đang phủ định mình :)) Điều kiện đúng rồi :)) Giờ mới thấy
Theo ý ban đầu của bạn là chỉ cần chia hết cho 4 thôi mà =))
Thì bởi, mình nhầm =))
4 năm nhuận 1 lần thì chia hết cho 4 là nhuận thôi chứ nhở?
(Trích wikipedia )
Ra là không đơn giản chỉ là 4 năm 1 lần.