Python編程算法【五】 打魚還是曬網(wǎng)
【案例內(nèi)容】
中國有句俗話叫“三天打魚兩天曬網(wǎng)”。一位大叔從1990年1月1日起便開始“三天打魚兩天曬網(wǎng)”,請問大叔在往后的某一天是“打魚”還是“曬網(wǎng)”??
【解題思路】
先計算從1990年1月1日起,到指定的日期,比如2012年10月25日,共有多少天。在python中可以利用datatime模塊,計算兩個日期之間相差的天數(shù),包括閏年和平年在內(nèi)。
其實,根據(jù)題意,第1、2、3天是打魚,第4、5天是曬網(wǎng)。也就是說,每隔5天一個循環(huán),再進一步分析,將一個數(shù)去除以5,會得到的余數(shù)分別是1、2、3、4,如果余數(shù)是1、2、3,剛好對應的是第1、2、3天,余數(shù)是4或正好整除,對應的就是第4、5天。
最后,將兩個日期相減所得的天數(shù),去除以5,若余數(shù)為1、2、3,即余數(shù)<=3,則他是在“打魚”,余數(shù)為4或整除,也就是余數(shù)除1、2、3以外的其他情況時,他就在“曬網(wǎng)”。
【Python代碼】

由于python擁有強大的各種模塊,本題直接利用datatime模塊,可以方便算出某個日期與1990年1月1日之間相差的天數(shù),不然就得自己去計算天數(shù),還得考慮閏年和平年的情況,而有了datatime模塊,就無需考慮閏年或平年,它已經(jīng)幫我們一起計算在內(nèi)了。
標簽: