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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【日期】确定母亲节

發(fā)布時間:2023/12/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【日期】确定母亲节 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【日期】確定母親節(jié)

母親節(jié)是每年的五月第二個星期天,針對輸入的年份,計算該年的哪一天是母親節(jié)。

輸入:

年份

輸出:

日期(5月的哪一天)

樣例:

序號測試輸入期待的輸出額外進程
12014?11?0
22015?10?0
32012?13?0

思路

五月的第二個星期日,也就是說輸出范圍應該是屬于[1,14]的一個整數(shù),那我們不妨先計算出每年的五月十四日是星期幾再向前倒退對應天數(shù)就可以得到我們想要的結果,自然地,我們想到利用之前寫過的代碼 根據(jù)日期求星期

流程圖

代碼

#include<stdio.h> int a[13]={0,31,28,31,30,31,30,31,31,30,31}; int Weekday(int y){int d=14,m=5;if(y%4==0&&y%100!=0||y%400==0) a[2]=29; int ans=d,i; for(i=1;i<=m-1;i++){ ans+=a[i]; } int s,r; s=y-1+(y-1)/4-(y-1)/100+(y-1)/400+ans; return r=s%7; } int main() {int y; scanf("%d",&y);printf("%d\n",14-Weekday(y));return 0; }

課外思考

這里我們將之前寫過的代碼當做了一個函數(shù),將原本的輸入月份和日期改為了直接賦值,那是否還能簡化這段代碼呢?

事實上,因為母親節(jié)必然在五月,所以我們已經(jīng)沒必要討論輸入的年份是否為閏年,因為五月已經(jīng)包括了二月,我們只需要算出N+1年總共的天數(shù)再減去245(每年五月十四之后的天數(shù),這是固定的)

代碼

#include<stdio.h> int main() {int y; scanf("%d", &y);int day;day = (y+(y)/4-(y)/100+(y)/400-245) %7;printf("%d\n", 14-day);return 0; }

顯然代碼簡潔了不少,這說明在優(yōu)化此類問題的時候,從數(shù)學模型的角度入手是一個好的的切入點

總結

以上是生活随笔為你收集整理的【日期】确定母亲节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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