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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

code1928: 日期差值 技巧模拟

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 code1928: 日期差值 技巧模拟 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1928: 日期差值
時間限制: 1 Sec 內存限制: 32 MB
題目描述
有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。

輸入
有多組數據,每組數據有兩行,分別表示兩個日期,形式為YYYYMMDD

輸出
每組數據輸出一行,即日期差值

樣例輸入
20130101
20130105
樣例輸出
5
來源

雖然是小題 但是細節很多易錯點 …
由于代碼塊位置寫錯了 WA了好幾次
比較安全的判斷日期之間差多少天的方法 就是用這種加法 一天也不會漏加
這樣的復雜度是最大不會超過9999*366 大概是1e6左右不會超時
WA的時候不能慌 要冷靜的分析自己的代碼哪里可能會出錯

#include<cstdio> #include<iostream> using namespace std; int data[][2] = {{},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};bool Judge(int y){return (y%4==0&&y%100!=0)||(y%400==0); }int main() {int s,e;while(~scanf("%d%d",&s,&e)){if(s>e){//****坑 一定要放到第一步去做交換 int t = e;e = s;s = t;}int sd = s%100;s/=100;int sm = s%100;s/=100;int ed = e%100;e/=100;int em = e%100;e/=100;long long sum=0;while(s!=e||sm!=em||sd!=ed){sd++;if(sd==data[sm][Judge(s)]+1){//這里的判斷閏年也很簡約 省去了很多復雜語句 不管閏不閏 都適用這種寫法sm++;sd = 1;}if(sm==13){s++;sm=1;}sum++;}printf("%lld\n",sum+1);}return 0; }

總結

以上是生活随笔為你收集整理的code1928: 日期差值 技巧模拟的全部內容,希望文章能夠幫你解決所遇到的問題。

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