日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python蓝桥杯基础之星期一

發(fā)布時間:2024/3/24 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python蓝桥杯基础之星期一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

星期一

整個20世紀(1901年1月1日至2000年12月31日之間),一共有多少個星期一?(不要告訴我你不知道今天是星期幾)

我們可能不知道20世紀中的某一天是星期幾,但我們應該知道今天是星期幾。 比如說今天是2022年10月19日星期三,我們只需要反推到二十多年前的2000年12月31日是星期幾就科研進行計算了。

# 已知2022年為平年2月28天,所以可知10月19日為這一年的第292天,所以在291天前為本年的1月1日 n = 291 while n > 7:for i in range(1, 1000):n = n - 7if n < 7:break print(n) # 即2022年1月1日的4天后為星期三即1月5日為星期三 week_2022_1_1 = 7 + 3 - 4 # 用來計算星期幾的,減出來為負數(shù)就在前面加個7答案就是星期幾 print(week_2022_1_1) # 所以說2022年的1月1日是星期六,2021年12月31日是星期五 day_to_2000_12_31 = 366 * 5 + 365 * 16 print(day_to_2000_12_31) # 即在2021年12月31日的7670天前是2000年12月31日 n = 7670 while n > 7:for i in range(1, 1000):n = n - 7if n < 7:break print(n) # 21年前的2000年12月31日的5天后為星期五,所以2000年12月31日是星期日 day_to_1901_1_1 = 366 * 25 + 365 * 75 - 1 # 這里為什么要減一天? print(day_to_1901_1_1) # 即在2000年12月31日的36524天前是1901年1月1日 n = 36524 while n > 7:for i in range(1, 10000):n = n - 7if n < 7:break print(n) # 1901年1月1日的5天后為星期日,所以1901年1月1日是星期二

上面代碼中的

n = 291 while n > 7:for i in range(1, 1000):n = n - 7if n < 7:break print(n)

這些部分都可以直接寫成n % 7效果是一樣的

還有就是day_to_1901_1_1 = 366 * 25 + 365 * 75 - 1 # 這里為什么要減一天?

這是因為1900年12月31日才是2000年12月31日的整整一百年前,而1901年1月1日還少一天,注意我這里算的是多少天以前,而不是這段時間總共有多少天。如果算1901年1月1日到2000年12月31日總共有多少天那就是整整100年,不需要減1。

上面的代碼塊是我一?步一步推的,當然可以直接得到2000年12月31日是星期幾然后再進行計算,我們最終要得到的是20世紀有多少個星期一,先得到1901年1月1日到2000年12月31日有多少個7天,剩下的再做計算即可,代碼入如下:

print(day_to_1901_1_1 // 7, day_to_1901_1_1 % 7) # 已知1901年1月6日為星期日, 所以五天前的1901年1月1日為星期二 # 所以正確答案就是(day_to_1901_1_1 // 7)即5217個星期一, 不用管后面的余數(shù)5

上面的解法思路非常簡單,當然看起來有點麻煩,我們可以將其簡單化一點,如下代碼:

day_num = 0 for year in range(1901, 2001):if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):day_num += 366else:day_num += 365 day_before = day_num - 1 # 這里為什么減1如我上文所說。 # 現(xiàn)在只需要1901年1月1日是星期幾,或是2000年12月31日是星期幾就可以算出共有多少個星期一 # 這里我們只知道今天是2022年10月19日星期三,所以需要去往回推算 # 如上算出 # 已知2022年為平年2月28天,所以可知10月19日為這一年的第292天,所以在291天前為本年的1月1日 n = 291 day_to_2000_12_31 = 366 * 5 + 365 * 16 + n + 1 # 這里+1是因為整年是到2021年12月31日為21年少1月1日1天 # 即在2022年10月19日的7962天前是2000年12月31日 n = 7962 yu = n % 7 week_2000_12_31 = 3 - yu + 7yu_result = day_before % 7 week_1901_1_1 = 7 - yu_result # 所以1901年1月1日為星期二 sumMon = day_before // 7 print(sumMon)

總結

以上是生活随笔為你收集整理的Python蓝桥杯基础之星期一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。