#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
int flag=0;
if(n%400==0)//不能写成!n%400
/* !(逻辑非)的优先级远高于 %(取模)
!n%400 会被编译器解读为 (!n) % 400,而不是 !(n%400)
举例:如果 n=400,!n 是 !400(非 0 数取反为 0),然后 0%400=0,条件为假,完全不符合闰年逻辑
*/
flag=1;
else if(n%4==0&&n%100!=0)//这里不能天真的认为用了else if就可以达成只要n%4==0就能确保n%100!=0
//就比如说100就是不满足的(所以可能仅限于大于400的数)
flag=1;
if(flag)
cout<<"yes";
else
cout<<"no";
}

京公网安备 11010502036488号