高斯的日记

简介: 高斯的日记

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

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如: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;
        }
      }
    }
  }
}

   


相关文章
|
2月前
|
算法 定位技术
技术笔记:Kriging插值法
技术笔记:Kriging插值法
31 1
|
2月前
|
算法 C语言
一文搞懂:一文教你快速搞懂速度曲线规划之S形曲线(超详细+图文+推导+附件代码)
一文搞懂:一文教你快速搞懂速度曲线规划之S形曲线(超详细+图文+推导+附件代码)
75 0
一文搞懂:一文教你快速搞懂速度曲线规划之S形曲线(超详细+图文+推导+附件代码)
|
2月前
大学物理(上)-期末知识点结合习题复习(3)——质点运动学-惯性系 非惯性系 惯性力 动量定理 动量守恒定律
大学物理(上)-期末知识点结合习题复习(3)——质点运动学-惯性系 非惯性系 惯性力 动量定理 动量守恒定律
23 0
|
2月前
大学物理(上)-期末知识点结合习题复习(2)——运动的描述考点总结、质点运动学-牛顿运动定律
大学物理(上)-期末知识点结合习题复习(2)——运动的描述考点总结、质点运动学-牛顿运动定律
28 0
|
Cloud Native
【刷题日记】1184. 公交站间的距离
好久不刷题,没有锻炼思维,感觉脑袋都要生锈了,刷题感觉还是要从简单题刷题才能慢慢找到感觉
|
机器学习/深度学习 Cloud Native
【刷题日记】48. 旋转图像
本次刷题日记的第 66 篇,力扣题为:48. 旋转图像,中等
|
Go Cloud Native
【刷题日记】75. 颜色分类
本次刷题日记的第 60 篇,力扣题为:75. 颜色分类,中等
深度之眼(十五)——导数和积分
深度之眼(十五)——导数和积分
深度之眼(十五)——导数和积分
|
存储
L2-036 网红点打卡攻略 (25 分)(图论)
L2-036 网红点打卡攻略 (25 分)(图论)
216 0