Caterl java 寒假基础练习题(二) ---- 判断闰年和简单递归

题目1:

  输入某年某月某日,判断这一天是这一年的第几天?

分析:

  35日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

代码:

import java.util.Scanner;


public class Days {
    public static void main(String[] args) {
        
        //年份
        System.out.println("请输入年份:");
        Scanner sc_y = new Scanner(System.in);
        int year = sc_y.nextInt();
        
        //月份
        System.out.println("请输入月份:");
        Scanner sc_m = new Scanner(System.in);
        int month = sc_m.nextInt();
        
        //
        System.out.println("请输入日期:");
        Scanner sc_d = new Scanner(System.in);
        int day = sc_d.nextInt();
        
        int sum = 0;//总天数
        int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};//日期数组
        
        //计算总天数
        for (int i = 0; i < month-1; i++) {
            sum += days[i];
        }
        sum += day;
        
        //判断闰年 如果是闰年就加一天
        if ( ((year%400==0) || ( (year%4==0)&&(year%100!=0))) && month>2 ) {
            ++sum;
        }
        
        //输出总天数
        System.out.println("到" + year + "年" + month + "月" + day + "日"
                + "是本年的第 " + sum + " 天!");
    }
}

 

题目一运行结果:

 

 

题目2:

  5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

分析:

  简单递归

代码:

 

public class Age {
    public static void main(String[] args) {
        System.out.println("第五个人" + calcAge(5) + "岁!\n\n");
    }
    
    private static int calcAge(int n) {
        
        if (n == 1) {
            return 10;
        }else {
            return calcAge(n-1)+2;
        }
    }
}

运行结果:

 

 

  

 

 

 

 

posted @ 2013-02-24 20:40  Cocoon  阅读(343)  评论(0编辑  收藏  举报