高斯的日记

简介: 高斯的日记

大数学家高斯有个好习惯:无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210

后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?

高斯出生于:1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。

高斯获得博士学位的那天日记上标着:8113

请你算出高斯获得博士学位的年月日。

提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21

错误解法:

package 蓝桥;
import java.util.Calendar;
public class 高斯的日记 {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Calendar calendar=Calendar.getInstance();
    calendar.set(1777, 3, 29);
    for (int i = 0; i < 8113; i++) {
      calendar.add(calendar.DATE, 1);
    }
    System.out.println(calendar.get(calendar.YEAR)+"-"+calendar.get(calendar.MONTH)+"-"+calendar.get(calendar.DATE));
    //System.out.println(calendar);
  }
}

通过date API的方式来做是错误的因为date api是从1970年开始的

分割线

最近偶然发现 java8 有了新的日期api localdate 使这题变的特别简单

import java.time.LocalDate;
public class 高斯的日记 {
  public static void main(String[] args) {
    LocalDate date=LocalDate.of(1791,12,15);
    for (int i = 5343; i < 8113; i++) {
      date=date.plusDays(1);
    }
    System.out.println(date);
  }
}

答案:1799-07-16

//分割线

不用日期API的解法:

package 蓝桥;
import java.util.Calendar;
public class 高斯的日记 {
  static int year=1777,month=4,data=30;
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    for (int i = 1; i < 8113; i++) {//因为高斯把出生标为第一天
      dateadd();
    }
    System.out.println(year+"-"+month+"-"+data);
  }
  public static void dateadd() {
    ++data;
    if ((year%4==0&&year%100!=0)||year%400==0) {
      if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
        if (data==32) {
          month++;data=1;
          if (month==13) {
            year++;
            month=1;
          }
        }
      }
      else if (month==2) {
        if (data==30) {
          month++;data=1;
        }
      }
      else {
        if (data==31) {
          month++;data=1;
        }
      }
    }
    else  {
      if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
        if (data==32) {
          month++;data=1;
          if (month==13) {
            year++;
            month=1;
          }
        }
      }
      else if (month==2) {
        if (data==29) {
          month++;data=1;
        }
      }
      else {
        if (data==31) {
          month++;data=1;
        }
      }
    }
  }
}

   


目录
打赏
0
0
0
0
0
分享
相关文章
技术笔记:Kriging插值法
技术笔记:Kriging插值法
107 1
matlab程序,地震波三联反应谱,标定三联谱,三联反应谱
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
【刷题日记】1184. 公交站间的距离
好久不刷题,没有锻炼思维,感觉脑袋都要生锈了,刷题感觉还是要从简单题刷题才能慢慢找到感觉
Python实现因子分析(附案例实战)
Python实现因子分析(附案例实战)
1977 0
Python实现因子分析(附案例实战)
|
9月前
|
Python实现张万森下雪了的效果
Python实现张万森下雪了的效果
96 0
【刷题日记】48. 旋转图像
本次刷题日记的第 66 篇,力扣题为:48. 旋转图像,中等
【刷题日记】75. 颜色分类
本次刷题日记的第 60 篇,力扣题为:75. 颜色分类,中等
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等