偶然看到《最強大腦》的一期節目,主持人只要隨便說出某年某月某日,嘉賓選手馬上能算出來這一天是一年中的第幾天,讓觀眾和評委都贊嘆不已,看完節目后的我想是否可以編寫一個程序完成這個計算呢。
做任何題目之前我們都要先考慮一下題目的問題和基本的思路,以及題目中會出現的一些問題或者是陷阱……
程序中需要自行輸入年、月、日,然后輸出天數。接下來就要思考如何計算出天數呢?有幾點提示,首先年份是要區分閏年和非閏年,根據閏年還是非閏年確定2月份的天數是28天還是29天,并且輸入的月份必須在1到12之間,否則需要報錯,如圖1。

在構思編程時就需要綜合考慮解決這些問題了。我們先計算出每個月的合計天數,比如說1月一共有31天,1月到2月一共有59天(暫且把2月設置為28天),1月到3月一共有90天,一直計算出十二個月的。然后這時我們根據月份和日期大致計算出天數。當輸入月份大于2月份時,還需要考慮是否為閏年的情況,如果閏年的話,2月份需要加一天。在計算閏年時可以參考上一期《計算閏年》的知識點注意“百年不閏,四百年再閏”的世紀閏年情況。
分析清楚情況之后開始動手寫代碼了。大家也可以先自己編寫然后和我寫的對比一下。方法是有很多種的,但是最終效果應該一致。歡迎大家提出自己不同的想法,如圖2、圖3。

