問題描述
給定一個年份,判斷這一年是不是閏年。
當以下情況之一滿足時,這一年是閏年:
1. 年份是4的倍數而不是100的倍數;
2. 年份是400的倍數。
其他的年份都不是閏年。
輸入格式
輸入包含一個整數y,表示當前的年份。
輸出格式
輸出一行,如果給定的年份是閏年,則輸出yes,否則輸出no。
說明:當試題指定你輸出一個字符串作爲結果(比如本題的yes或者no,你需要嚴格按照試題中給定的大小寫,寫錯大小寫將不得分。
樣例輸入
2013
樣例輸出
no
樣例輸入
2016
樣例輸出
yes
數據規模與約定
1990 <= y <= 2050。
方法1:
這個是通過藍橋杯的測試系統的
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner inScanner =new Scanner(System.in);
int y = inScanner.nextInt();
inScanner.close();
if(y>=1990 &&y<=2050) {
if(y%4==0 && y%100!=0) {
System.err.println("yes");
}
else if (y%400==0) {
System.out.println("yes");
}
else {
System.out.println("no");
}
}
}
}
方法2
這個結果通過,但是在藍橋系統上只有50分,這裏是採用java自帶的系統函數,日曆中的set(),get()函數方法的
主要可以查看API,我覺得這兩個函數在calendar的應用中,比較常見,可以學習下這個函數的具體用法
import java.util.Calendar;
import java.util.Scanner;
import com.sun.org.apache.bcel.internal.generic.I2F;
public class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
Scanner inScanner = new Scanner(System.in);
int year = inScanner.nextInt();
inScanner.close();
if(year>=1990 && year<=2050) {
calendar.set(year, 1,29);
int m = calendar.get(calendar.MONTH)+1;
if(m==2)
System.err.println("year");
else {
System.out.println("no");
}
}
}
}