Caterl java 寒假基础练习题(二) ---- 判断闰年和简单递归
题目1:
输入某年某月某日,判断这一天是这一年的第几天?
分析:
以3月5日为例,应该先把前两个月的加起来,然后再加上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; } } }
运行结果: