題目
問題描述給定一個年份,判斷這一年是不是閏年。
當以下情況之一滿足時,這一年是閏年:
1. 年份是4的倍數而不是100的倍數;
2. 年份是400的倍數。
其他的年份都不是閏年。
輸入格式輸入包含一個整數y,表示當前的年份。輸出格式輸出一行,如果給定的年份是閏年,則輸出yes,否則輸出no。說明:當試題指定你輸出一個字符串作爲結果(比如本題的yes或者no,你需要嚴格按照試題中給定的大小寫,寫錯大小寫將不得分。
樣例輸入2013樣例輸出no樣例輸入2016樣例輸出yes數據規模與約定1990 <= y <= 2050。
源碼
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int y = sc.nextInt(); if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) { System.out.println("yes"); } else { System.out.println("no"); } } }
分析
本題無需特殊注意。
在進行判斷時,偶然想複習下運算符優先級,在下面放上。(轉自http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html)
序列號
符號
名稱
結合性(與操作數)
目數
說明
1
.
點
從左到右
雙目
( )
圓括號
從左到右
[ ]
方括號
從左到右
2
+
正號
從右到左
單目
-
負號
從右到左
單目
++
自增
從右到左
單目
前綴增,後綴增
- -
自減
從右到左
前綴減,後綴減
~
按位非/取補運算
從右到左
單目
!
邏輯非
從右到左
單目
3
*
乘
從左到右
雙目
/
除
從左到右
雙目
整數除法:取商的整數部分,小數部分去掉,不四捨五入
%
取餘
從左到右
雙目
4
+
加
從左到右
雙目
-
減
從左到右
雙目
5
<<
左移位運算符
從左到右
雙目
>>
帶符號右移位運算符
從左到右
雙目
>>>
無符號右移
從左到右
雙目
6
<
小於
從左到右
雙目
<=
小於或等於
從左到右
雙目
>
大於
從左到右
雙目
>=
大於或等於
從左到右
雙目
instanceof
確定某對象是否屬於指定的類
從左到右
雙目
7
==
等於
從左到右
雙目
!=
不等於
從左到右
雙目
8
&
按位與
從左到右
雙目
9
|
按位或
從左到右
雙目
10
^
按位異或
從左到右
雙目
11
&&
短路與
從左到右
雙目
12
||
短路或
從左到右
雙目
13
? :
條件運算符
從右到左
三目
14
=
賦值運算符
從右到左
雙目
+=
混合賦值運算符
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=