第一题的思路比较简单,最复杂的就是计算天数。
- package com;
- import java.util.Scanner;
- public class Test {
- final static int YEAR=1990;
- final static int DAYS=365;
- public static int []mon = {31,28,31,30,31,30,31,31,30,31,30,31};
- public static void main(String []args){
- Scanner scan = new Scanner(System.in);
- int year,month,day;
- int sumDay;
- System.out.println("输入年月日:");
- year = scan.nextInt();
- month = scan.nextInt();
- day = scan.nextInt();
- System.out.println(year+"-"+month+"-"+day);
-
- sumDay = sumDays(year,month,day);
-
- if(sumDay%5==0||sumDay%4==4){
- System.out.println("晒网");
- }else{
- System.out.println("打鱼");
- }
- }
- /**
- * 获取天数
- * @param year
- * @param month
- * @param day
- * @return
- */
- static int sumDays(int year,int month,int day){
- int y = year-YEAR;
- int m = 0;
- int d = day;
- if(year%4==0&&year%100!=0){
- mon[1] = 29;
- }
- while(m<month){
- d +=mon[m++];
- }
- if(y>0){
- d +=DAYS*y+(y-1)/4+1;
- }
- return d;
- }
- }
复制代码
第二题是典型的斐波拉契数列。
- package com;
- public class Test2 {
- public static void main(String[] args) {
- new Test2();
- }
- public Test2(){
-
- int month1 = 6,month2 = 9;
- int a1,a2;
- a1 = a2 =1;
- for(int i=3;i<=9;i++){
- int emp = a2;
- a2+=a1;
- a1 = emp;
- }
- System.out.println(a2);
- }
- }
复制代码 |