洛谷 T156530 儒略曆

2021-10-10 17:38:19 字數 1687 閱讀 7279

在 1582 年之前,以 4 為倍數的年份為閏年。正常情況下,一年中一月到十二月的天數分別是 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 天。如果這年是閏年,那麼二月則有 29 天。

但某位皇帝發現這麼做其實不夠準確,會造成誤差,因此規定從 1582 年開始,以 4 為倍數的年份,除了以 100 為倍數且不為 400 的倍數年份,才是閏年。同時為了消除誤差,規定 1582 年 10 月 4 日的下一天是 1582 年 10 月 15 日,中間的日期就當作不存在了。

現在給出日期,計算這個日期到公元 1 年 1 月 1 日經過的天數。

按照 日月年 的格式輸入資料,其中日是 1 到 31 之間的整數,月是三個大寫字母,年是 1 到 9999 之間的整數。保證這個日期是合法且存在的。

月份的大寫字母:

1月:jan

2月:feb

3月:mar

4月:apr

5月:may

6月:jun

7月:jul

8月:aug

9月:sep

10月:oct

11月:nov

12月:dec

輸出乙個整數表示答案

輸入 #1

1jan1

輸出 #1

輸入 #2

4oct1582

輸出 #2

輸入 #3

15oct1582

輸出 #3

輸入 #4

21nov2020

輸出 #4

思路:純模擬

#include

#include

using

namespace std;

int k[13]

=;intmoth

(string s)

intnian1

(int y)

intnian2

(int y)

intday

(int y,

int m,

int d)

}else

} sum+

=p;}

k[2]=

28;for(

int i=

1;ielse

} sum+

=k[i];}

sum+

=d; sum--;if

(y>

1582

)else

if(y==

1582

)else

if(m==10)

}}//cout}int

main()

else}if

(f==1)

else}if

(f==2)

}}m=

moth

(str)

; cout<<

day(y,m,d)

<}return0;

}

T156530 儒略曆 傳智杯 練習賽

點讚再看,養成習慣 t156530 儒略曆 但某位皇帝發現這麼做其實不夠準確,會造成誤差,因此規定從 1582 年開始,以 4 為倍數的年份,除了以 100 為倍數且不為 400 的倍數年份,才是閏年。同時為了消除誤差,規定 1582 年 10 月 4 日的下一天是 1582 年 10 月 15 日...

洛谷T51924 忘情

二分上界有多大開多大 二分上界有多大開多大 二分上界有多大開多大 重要的事情說三遍 又被bright神仙帶著做題了 先無腦上wqs二分 我們可以把這個柿子畫一下,區間的花費就變成 sigema l r i s i 1 2了 那麼這個東西經過我艱苦的畫柿子證明是滿足四邊形不等式的 然後就和貞魚那題一樣...

洛谷T96628 統計

給定 n m 求十進位制 n 位數每個位數之積等於k的方案數 dp 高精 數學 考慮 k 0 的情況,由於可以有若干個 0 所以方案數為 sum limits times 9 考慮另外的情況,我們將 k 分解質因數,如果 k 還有除了 2 3 5 7 之外的質因數那麼方案數為 0 其餘的情況我們考慮...