牛客13584 日曆中的數字

2021-10-17 14:49:45 字數 1934 閱讀 4314

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 131072k,其他語言262144k

64bit io format: %lld

題目描述

element馬上就要畢業了,他開啟日曆看了看時間。發現日曆上的日期都是2017-04-04這樣的格式的,月和日如果不足2位數,前面都會補充0。

給定乙個年份和月份,element把那個月的日期都按上述格式寫到紙上,他現在想知道某種數字出現了多少次。

輸入描述:

多組輸入

每組輸入一行,有3個數字y,m,x(1000<=y<=3000,1<=m<=12,0<=x<=9),分別代表年份,月份,和他想知道哪個數字出現的次數。

輸出描述:

每組輸出乙個整數,表示數字x在這個月的日期裡出現了多少次。

注意閏年和月和日如果不足2位數,前面都會補充0即可。

def

fn(y):if

(y%4==0

and y%

100!=0)

or y%

400==0:

return

true

else

:return

false

c1 =[1

,3,5

,7,8

,10,12

]c2 =[4

,6,9

,11]c3 =[2

]while

true

:try

: res =

0 y, m, x =

list

(map

(int

,input()

.split())

)if m in c1:

d =[12

,14,13

,5,3

,3,3

,3,3

,3] n =

31elif m in c2:

d =[12

,13,13

,4,3

,3,3

,3,3

,3] n =

30elif m in c3 and fn(y)

: d =[11

,13,13

,3,3

,3,3

,3,3

,3] n =

29else

: d =[11

,13,12

,3,3

,3,3

,3,3

,2] n =

28if m <=9:

d[0]

+= n

d[m]

+= n

elif m ==10:

d[1]

+= n

d[0]

+= n

elif m ==11:

d[1]

+=2*n else

: d[1]

+= n

d[2]

+= n

res += d[x]

ifstr

(x)in

str(y)

: res +=

(str

(y).count(

str(x)))

*n print

(res)

except

:break

日曆中的數字

題目描述 element馬上就要畢業了,他開啟日曆看了看時間。發現日曆上的日期都是2017 04 04這樣的格式的,月和日如果不足2位數,前面都會補充0。給定乙個年份和月份,element把那個月的日期都按上述格式寫到紙上,他現在想知道某種數字出現了多少次。輸入描述 多組輸入 每組輸入一行,有3個數...

牛客網 有趣的數字

程式設計題 有趣的數字 時間限制 1秒空間限制 32768k 小q今天在上廁所時想到了這個問題 有n個數,兩兩組成二元組,差最小的有多少對呢?差最大呢?輸入描述 輸入包含多組測試資料。對於每組測試資料 n 本組測試資料有n個數 a1,a2 an 需要計算的資料 保證 1 n 100000,0 ai ...

每日刷題 牛客 陣列中重複的數字

事件還早,再來乙個簡單的吧 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。拿乙個輔助陣列先將所給陣列的第乙個值給它...