黑马程序员技术交流社区

标题: 算法问题 [打印本页]

作者: 王琪    时间: 2014-6-13 17:20
标题: 算法问题

希望大家帮帮我

作者: 钟翠翠    时间: 2014-6-13 17:28
看晕了。。。。
作者: C、一个画不完的    时间: 2014-6-13 20:27
第一题的思路比较简单,最复杂的就是计算天数。
  1. package com;

  2. import java.util.Scanner;

  3. public class Test {
  4.         final static int YEAR=1990;
  5.         final static int DAYS=365;
  6.         public static int []mon = {31,28,31,30,31,30,31,31,30,31,30,31};
  7.         public static void main(String []args){
  8.                 Scanner scan = new Scanner(System.in);
  9.                 int year,month,day;
  10.                 int sumDay;
  11.                 System.out.println("输入年月日:");
  12.                 year = scan.nextInt();
  13.                 month = scan.nextInt();
  14.                 day = scan.nextInt();
  15.                 System.out.println(year+"-"+month+"-"+day);
  16.                
  17.                 sumDay = sumDays(year,month,day);
  18.                
  19.                 if(sumDay%5==0||sumDay%4==4){
  20.                         System.out.println("晒网");
  21.                 }else{
  22.                         System.out.println("打鱼");
  23.                 }
  24.         }
  25.         /**
  26.          * 获取天数
  27.          * @param year
  28.          * @param month
  29.          * @param day
  30.          * @return
  31.          */
  32.         static  int sumDays(int year,int month,int day){
  33.                 int y = year-YEAR;
  34.                 int m = 0;
  35.                 int d = day;
  36.                 if(year%4==0&&year%100!=0){
  37.                         mon[1] = 29;
  38.                 }
  39.                 while(m<month){
  40.                         d +=mon[m++];
  41.                 }
  42.                 if(y>0){
  43.                         d +=DAYS*y+(y-1)/4+1;
  44.                 }
  45.                 return d;
  46.         }
  47. }
复制代码

第二题是典型的斐波拉契数列。
  1. package com;

  2. public class Test2 {

  3.         public static void main(String[] args) {
  4.                 new Test2();
  5.         }
  6.         public Test2(){
  7.                
  8.                 int month1 = 6,month2 = 9;
  9.                 int a1,a2;
  10.                 a1 = a2 =1;
  11.                 for(int i=3;i<=9;i++){
  12.                         int emp = a2;
  13.                         a2+=a1;
  14.                         a1 = emp;
  15.                 }
  16.                 System.out.println(a2);
  17.         }
  18. }
复制代码

作者: 王琪    时间: 2014-6-13 23:06
谢谢你,太好了
作者: 王琪    时间: 2014-7-6 09:27
C、一个画不完的 发表于 2014-6-13 20:27
第一题的思路比较简单,最复杂的就是计算天数。

第二题是典型的斐波拉契数列。

在吗?
我有个问题
作者: 王琪    时间: 2014-7-6 09:30
if(y>0){
                        d +=DAYS*y+(y-1)/4+1;
                }
                return d;
不太明白




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2