topic:
大數學家高斯有個好習慣:無論如何都要記日記。solution:他的日記有個與眾不同的地方,他從不註明年月日,而是用乙個整數代替,比如:4210
後來人們知道,那個整數就是日期,它表示那一天是高斯出生後的第幾天。這或許也是個好習慣,它時時刻刻提醒著主人:日子又過去一天,還有多少時光可以用於浪費呢?
高斯出生於:2023年4月30日。
在高斯發現的乙個重要定理的日記上標註著:5343,因此可算出那天是:2023年12月15日。
高斯獲得博士學位的那天日記上標著:8113
請你算出高斯獲得博士學位的年月日
(由示例可看出出生也算一天)
由於和日期相關,很容易就聯想到datetime模組
先用strptime函式將出生日期轉化為datetime形式方便後續處理
之後用deltatime函式轉化days為delta days(增量時間)
最後將出生日期和增量時間相加得到最後時間
用strftime方法最後輸出時間
也可直接輸出,但直接輸出結果包括分秒
code_1:
import datetime
days =
int(
input()
)-1birth = datetime.datetime.strptime(
'1777-4-30'
,'%y-%m-%d'
)delta = datetime.timedelta(days=days)
doctor = birth + delta
print
(doctor.strftime(
'%y-%m-%d'
))
code_2:
通用方法,不僅侷限於本題
import datetime
days =
int(
input
('間隔天數:'))
-1year =
str(
input
('開始年份:'))
month =
str(
input
('開始月份:'))
day =
str(
input
('開始日期:'))
start =
[year, month, day]
start =
'-'.join(start)
birth = datetime.datetime.strptime(start,
'%y-%m-%d'
)delta = datetime.timedelta(days=days)
doctor = birth + delta
print
(doctor.strftime(
'%y-%m-%d'
))
2023年藍橋杯預賽第一題高斯日記
解題思路 先將初始日期提至1778年1月1日,不斷加上365 閏年加366 直到不能再加,得到年份 不斷加上相應月份的天數,直到不能再加,得到月份,此時得到 year month 01,因為1777 4 30算作8113天的第一天,用5343,1791 12 15的資料驗證 所以剩下的天數就是day...
藍橋杯 每日一題 Sine之舞
最近fj為他的奶牛們開設了數學分析課,fj知道若要學好這門課,必須有乙個好的三角函式基本功。所以他準備和奶牛們做乙個 sine之舞 的遊戲,寓教於樂,提高奶牛們的計算能力。不妨設an sin 1 sin 2 sin 3 sin 4 sin n sn a1 n a2 n 1 a3 2 an 1 fj想...
藍橋杯大賽 每日一題(1 子串分值)
問題描述 對於乙個字串s,我們定義s的分值f s 為s中恰好出現一次的字元個數。例如f aba 1,f abc 3,f aaa 0。現在給定乙個字串s 0 n 1,請你計算對於所有s的非空子串s i j 0 is j 這道題咋說呢,我開始看的時候感覺很難,但是只要你理解了感覺也很簡單了 我開始想到的...