编写一个Java程序,输出从公元1900年到2010年所有闰年的年号,每输出两个年号换一行。

我需要源代码,最好简单一点,有注释,谢谢。

package zhidao;

public class Test6
{
public static void main ( String[] args )
{
printLeapYear (1900, 2010, "");
}

/**
 * 递归打印闰年,每2个换一行
 * 
 * @param start
 *            int 开始年份
 * @param end
 *            int 结束年份
 * @param result
 *            String 技巧性拼接字符串,用于判定当前有几个闰年,用于换行
 */
private static void printLeapYear ( int start, int end, String result )
{
// 边界条件
if (start > end)
{
return;
}
// 闰年标志:能被400整除,或者能被4整除但不能被100整除
if (start % 400 == 0 || start % 4 == 0 && start % 100 != 0)
{
// 拼接闰年字符串
result += start + ",";
// 打印闰年
System.out.print (start + " ");
// 每隔2个换行
if (result.split (",").length % 2 == 0)
{
System.out.println ();
}
}
// 递增
start++;
// 递归调用
printLeapYear (start, end, result);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
public class Test {
public static void main(String args[]) {
int num = 0;
for(int i=1900;i<=2010;i++)
{
// 可以被4整除,不被100整除    或者     可以被400整除的是闰年
if((i%4==0&&i%100!=0)||(i%400==0)){
num++;
if(num%2==0)
{
System.out.println(i);
}
else{
System.out.print(i+" ");
}
}
}
}
}

 修改了下

追问

能告诉我为什么后面还有用一个 if(num%2==0)之后才能输出,吗?我就是没有那一步所有结果年间隔为8,谢谢

追答

不是要
每输出两个年号换一行么
num就是个计数器
System.out.println是打印并换行
System.out.print 不换行

本回答被提问者采纳