演算法訓練 高斯日記

2021-10-03 03:39:16 字數 1268 閱讀 3662

一、引入:

大數學家高斯有個好習慣:無論如何都要記日記。

用乙個整數表示:那一天是高斯出生後的第幾天。

高斯出生於:2023年4月30日。

ex:在高斯發現的乙個重要定理的日記上標註著:5343,因此可算出那天是:2023年12月15日。

高斯獲得博士學位的那天日記上標著:8113

請你算出高斯獲得博士學位的年月日。

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

二、分析:

閏年、平年的判斷式:

year%4==0 && year%100!=0 || year%400==0 

為true則為閏,反之為平。

日曆模擬法:

1. day滿最大天數,則:day置為1 且 month++

2.month滿最大月數12,則:month置為1 且 year++

三、**:

#includeusing namespace std;

int main();

int cut = 8113;

//因為出生的那天就是第一天,所以要cut-1.

for(int i = 1;i<=cut-1;i++)else

if(day > a[month])

/*ex:

1977-12-30

1977-12-31

1977-12-32 1977-13-1 1978-1-1

1978-1-2

...

*/if(month >12)

day++;

} cout《四、工程上的應用: 獲取兩個日期之間相差的天數

// 獲取相差的天數

calendar calendar = calendar.getinstance();

calendar.settime(date1);

long timeinmillis1 = calendar.gettimeinmillis();

calendar.settime(date2);

long timeinmillis2 = calendar.gettimeinmillis();

long betweendays = (timeinmillis2 - timeinmillis1) / (1000l*3600l*24l);

system.out.println(betweendays);

2013 高斯日記

高斯日記 大數學家高斯有個好習慣 無論如何都要記日記。他的日記有個與眾不同的地方,他從不註明年月日,而是用乙個整數代替,比如 4210 後來人們知道,那個整數就是日期,它表示那一天是高斯出生後的第幾天。這或許也是個好習慣,它時時刻刻提醒著主人 日子又過去一天,還有多少時光可以用於浪費呢?高斯出生於 ...

高斯的日記

演算法大數學家高斯有個好習慣 無論如何都要記日記。他的日記有個與眾不同的地方,他從不註明年月日,而是用乙個整數代替,比如 4210 後來人們知道,那個整數就是日期,它表示那一天是高斯出生後的第幾天。這或許也是個好習慣,它時時刻刻提醒著主人 日子又過去一天,還有多少時光可以用於浪費呢?高斯出生於 17...

作業 高斯日記

大數學家高斯有個好習慣 無論如何都要記日記。他的日記有個與眾不同的地方,他從不註明年月日,而是用乙個整數代替,比如 4210 後來人們知道,那個整數就是日期,它表示那一天是高斯出生後的第幾天。這或許也是個好習慣,它時時刻刻提醒著主人 日子又過去一天,還有多少時光可以用於浪費呢?高斯出生於 1777年...