科大訊飛杯 日期小助手

2021-10-06 01:13:43 字數 2176 閱讀 6565

作為乙個關心父母的孩子,compute 會在每年的母親節和父親節為父母準備禮物。可是粗心的他卻不記得它們的具體日期了。

已知:母親節在每年 5 月的第 2 個週日;父親節在每年 6 月的第 3 個週日。

現在你需要告訴他,下乙個(不包括當天)母親節或父親節是在什麼時候。

第一行包含乙個整數 t (t \leq 100t≤100),表示測試資料的組數。

對於每組資料,包含三個整數 y, m, d,中間以空格分隔,分別表示今天的年、月、日。

輸入保證是乙個在公元 2000 年 1 月 1 日 到 2100 年 12 月 31 日間的合法日期。

7

200011

200111

200211

200311

202011

2020510

2020

621

mother's day: may 14th,

2000

mother's day: may 13th,

2001

mother's day: may 12th,

2002

mother's day: may 11th,

2003

mother's day: may 10th,

2020

father's day: june 21st,

2020

mother's day: may 9th,

2021

注意在冒號和逗號後面有乙個空格。

#include

using

namespace std;

bool

isleap

(int year)

intreweek

(int y,

int m,

int d)

else

year++;}

while

(day != d || month != m)

}else

if(month ==

4|| month ==

6|| month ==

9|| month ==11)

}else

if(month ==2)

elseif(

!isleap

(year)

&& day ==29)

}else

if(month ==12)

}}return week;

}bool

mother_judge

(int month,

int day,

int week)

bool

father_judge

(int month,

int day,

int week)

intmain()

}else

if(month ==

4|| month ==

6|| month ==

9|| month ==11)

}else

if(month ==2)

elseif(

!isleap

(year)

&& day ==29)

}else

if(month ==12)

} week =

reweek

(year, month, day)

;while(!

father_judge

(month, day, week)&&!

mother_judge

(month, day, week))}

else

if(month==

4||month==

6||month==

9||month==11)

}else

if(month ==2)

elseif(

!isleap

(year)

&& day ==29)

}else

if(month ==12)

}}if(month ==6)

else

if(month ==5)

}return0;

}

科大訊飛杯 日期小助手(補)

思路 找規律發現母親節出現的日期在8 14之間,若x 8則x x 7 15,父親節出現的日期在15 21之間,若x 15則x x 7 22,賽時忘記掉2100年不是閏年了真的找bug找吐了 include include typedef long long ll using namespace st...

牛客科大訊飛杯 日期小助手 暴力模擬

乙個很有趣的模擬題 給你乙個日期,問你最近的後面乙個母親節或父親節是什麼時候。可以看到資料範圍只有一百年,也就是100 365 100組資料,顯然可以暴力。先打出這一百年裡邊的母親節和父親節的表,然後每次輸入乙個日期,暴力 判斷即可。include include include include i...

科大訊飛杯題目

蛇形矩陣 include main for i 0 i include main else break if i 10 i 10 10 i 100 10 10 s 10 printf d n i no9 資料序列 15分 問題描述 乙個正整數有可能可以被表示為n n 2 個連續正整數之和,如 15 ...