【C++】关于日历编程的一点思考
生活随笔
收集整理的這篇文章主要介紹了
【C++】关于日历编程的一点思考
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題源:POJ_1008_瑪雅歷
T1:給定第N天和每年有M天,確定是第幾年?(從第0年開始)
很容易想到為N/M。
現在思考一個問題,假設一年有365天,而給定的天數正好是365,則該天應該屬于第0年,但是計算結果卻為1.
解決辦法:
在計算年份之后,需再次進行取余,如果,余數為0的話,則可確定,這天是某年的最后一天,該對年份減1.
T2:給定第N天和每月有M天,確定是,某個月第幾天?(從1號開始)
同樣容易想到N%M.
現在思考一個問題,假設一個月有13天,給定的日期正好是13,則結果應該是13,而計算結果為0。這就涉及到取余數中有0的存在。
解決辦法:(N-1)%M+1。先將1~13的內容搬到0~12上,然后,再+1復原。即可避免上述情況。
注:用同樣的辦法,對于T1,可以用(N-1)/M來算。(對于第1天,結果也是對的)。
2015-5-27 1:44 在家中
總結
以上是生活随笔為你收集整理的【C++】关于日历编程的一点思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 敏感目录
- 下一篇: 安徽农业大学计算机考研分数线,安徽农业大