高斯的日记

简介: 高斯的日记

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

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如: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月前
|
算法 数据挖掘 定位技术
【MATLAB】赫尔默特方差分量估计算法
【MATLAB】赫尔默特方差分量估计算法
34 0
|
2天前
|
机器学习/深度学习 资源调度 数据挖掘
r语言逻辑回归(对数几率回归,Logistic)分析研究生录取数据实例 原创 TRL 拓端研究室 拓端数据部落
r语言逻辑回归(对数几率回归,Logistic)分析研究生录取数据实例 原创 TRL 拓端研究室 拓端数据部落
|
2月前
|
传感器 算法 数据可视化
【数字图像】数字图像傅立叶变换的奇妙之旅
【数字图像】数字图像傅立叶变换的奇妙之旅
46 0
|
2月前
|
存储 传感器 算法
【数字图像】数字图像锐化处理的奇妙之旅
【数字图像】数字图像锐化处理的奇妙之旅
36 1
|
2月前
|
存储 传感器 数据采集
【数字图像】数字图像平滑处理的奇妙之旅
【数字图像】数字图像平滑处理的奇妙之旅
41 0
|
6月前
|
存储 算法
数值分析学习笔记——误差【华科B站教程版本】
数值分析学习笔记——误差【华科B站教程版本】
85 0
|
9月前
|
机器学习/深度学习 Cloud Native
【刷题日记】48. 旋转图像
本次刷题日记的第 66 篇,力扣题为:48. 旋转图像,中等
|
9月前
|
Go Cloud Native
【刷题日记】75. 颜色分类
本次刷题日记的第 60 篇,力扣题为:75. 颜色分类,中等
|
10月前
概率论笔记(一)重要公式
概率论笔记(一)重要公式
135 0
|
12月前
|
安全
浅谈公式之美
公式是数学的精华,是数学思想在符号语言中的表现形式。它不仅仅是一个符号的集合,更是人类智慧的结晶。公式的应用十分广泛,不仅在数学领域中发挥着重要作用,而且在自然界、科学和工程领域中也有着广泛的应用。
132 0