Trái đất của chúng ta cần ~365.25~ ngày để quay hết một vòng quanh mặt trời. Phần dư ~0.25~ thực ra đã làm tròn, con số thực tế là ~365.2425~ ngày để trái đất quay được một vòng. Giá trị sai số này ~0.0075~ ngày ~(0.25 - 0.2425)~ khi nhân với ~400~ chúng ta sẽ có thêm ~3~ ngày nữa. Do đó, để lịch của ta chính xác, các chu kỳ ~100, 200~ và ~300~ chỉ có ~24~ năm nhuận thay vì ~25~. Riêng chu kỳ thứ ~400~ sẽ có ~25~ năm nhuận. Điều đó đảm bảo rằng mỗi chu kỳ ~400~ năm sẽ có ~97 (24 + 24 + 24 + 25)~ năm nhuận. Như vậy, cứ ~400~ năm chúng ta sẽ có ~97~ năm nhuận, chứ không phải ~100~ nhé.
Hãy viết chương trình kiểm tra giá trị nguyên ~year~ nhập từ bàn phím có phải là năm nhuận không (theo dương lịch).
Lưu ý: Giá trị năm ~(year)~ được coi là hợp lệ nếu: ~ 0 < year <= 100000 ~. Bộ test của đề bài sẽ có thể nằm ngoài giới hạn hợp lệ này, hãy chú ý kiểm tra kỹ nhé.
Input
Một số nguyên ~year~ là giá trị cần kiểm tra
Output
- Nếu ~year~ là năm nhuận, in ra
YES
- Nếu ~year~ là năm không nhuận, in ra
NO
- Nếu giá trị ~year~ không hợp lệ, in ra
INVALID
Sample
Input #1
2020
Output #1
YES
Giới hạn
- Toàn bộ các testcase có ~-10^6 \le year \le 10^6~
Bình luận
n=int(input()) if 0<=n<=100000: if n%400==0: print('YES') elif n%4==0 and n%100!=0: print('YES') elif n%100==0 or n%4!=0: print('NO') làm sao để qua case 4,5 ạ
include <bits/stdc++.h>
using namespace std; long long n; int main () { cin >> n; if (0 < n && n < 100000){ if ((n % 400 == 0 || n % 4 == 0) && n % 100 != 0) cout << "YES"; else cout << "NO"; } else cout << "NOT INVALID"; return 0; } sao nó cứ sai case 4 với case 5 vậy ạ
include <bits/stdc++.h>
using namespace std; int main (){ long long n; cin >> n; if (( 0 < n ) && ( n < 100000 )) { if (( n % 400 == 0) || (( n % 4 == 0 ) && ( n % 100 != 0 ))) { cout <<"YES"<< endl; } else { cout <<"NO"<< endl;
}
} else { cout <<"INVALID"<< endl; } return 0;
}
Mọi người học tốt nhá!!!
C++ (BÍ HÃY THAM KHẢO ) TÔN TRỌNG NGƯỜI VIẾT
}
else
}
sao của e ko qua đc case 5 nhỉ long year;
if (year > 0 && year <= 100000)
#include <bits/stdc++.h>
using namespace std; unsigned long long n; int main() { cin>>n; if(n==0||n>100000) cout<<"INVALID"; else{ if((n%400==0)||(n%4==0)&&n%100!=0) cout<<"YES"; else cout<<"NO"; } }
include <bits/stdc++.h>
using namespace std; bool ktnamnhuan(int year) { if (year%4==0&&(year%100!=0||year%400==0)) { return 1; } return 0; } int main() { int year; cin>>year; if ((year==0)||(year>100000)) { cout<<"INVALID"; return 0; } else { if (ktnamnhuan(year)==1) { cout<<"YES"; } else if (ktnamnhuan(year)==0) { cout<<"NO"; } } return 0; }
...? :V
WTF
sao e cứ bị sai case 4 5 ạ
năm nhuận chỉ chia hết cho 400 thôi bạn nhé
Có 2 trường hợp nha e, chia hết 400 hoặc chia hết 4 mà kh chia hết cho 100
e làm rồi mà nó báo lỗi ạ
chỗ INVALID là dấu hoặc nha bạn
e cảm ơn
năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100 nhưng nếu chia hết cho 400 thì vẫn là năm nhuận
include <bits/stdc++.h>
define str string
typedef long long ll; typedef double dou;
using namespace std; bool check(int n){ if(n % 4 == 0 && n % 100 != 0 || n % 400 == 0){ return true; } else return false; } ll n; int main(){ cin >> n; if(n >= 100000 || n < 1){ cout << "INVALID"; } else if(check(n) == true){ cout << "YES"; } else cout << "NO"; return 0; } code c++
Các bạn ơi! Sao mình làm mà cứ sai case 5 mãi thế này Bài mình đây này:
include <iostream>
using namespace std; int main(){ int y; cin >> y; if (y < 1) cout << "INVALID"; else if (y % 4 == 0) cout << "YES"; else cout << "NO"; return 0; }
y > 0. Trong code bạn là y > 1. năm 1 vẫn tính là hợp lí y < 100000 nhưng bạn lại quên kiểm tra. Một năm là năm nhuận nếu nó chia hết cho 4 NHƯNG không chia hết cho 100, hoặc nếu nó chia hết cho 400
Sao em cứ sai ở case 4 thế ạ ? :((
bạn coi lại giá trị year á. nếu mà nó <=0 hoặc >100000 thì k hợp lệ
hao no
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
có thể nằm ngoài giới hạn hợp lệ và và, và nó đã là giới hạn thấp hơn:)) ad sương gió.
10^5 là giá trị năm hợp lệ, 10^6 là giá trị mà testcase có thể tới. 2 số này khác nhau mà. Test case 5 chính là cho cái này năm nhập vào lớn hơn 10^5.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.