diff --git a/md/0023.md b/md/0023.md new file mode 100644 index 0000000..5f79e08 --- /dev/null +++ b/md/0023.md @@ -0,0 +1,19 @@ +เพื่อคำนวนว่าแต่ละวันตรงกับวันอะไร เราจะสร้างอาเรย์ days เก็บค่าจำนวนวันในแต่ละเดือนโดยที่ $\text{days[i]}$ เก็บว่าเดือนที่ $i+1$ มีกี่วัน และคำนวนหาว่าวันที่ ๆ ให้มาตรงกับวันที่เท่าไหร่ของปี สมมติว่าโจทย์ถามวันที่ $d$ เดือน $m$ เราจะทราบว่าปีนี้ผ่านไป $m-1$ เดือนกับอีก $d$ วัน นั่นคือวันที่ให้มาจะเป็นวันที่ $d + \sum_{i = 0}^{m-2} \text{days}[i]$ ของปี + +จากตัวอย่างในโจทย์ เราทราบว่าวันที่ 1 เดือน 1 ตรงกับวัน Thursday ซึ่งเป็น index ที่ 3 เราจึงทราบว่าวันที่ $x$ ของปีจะตรงกับวัน $\text{day}[(x+2) \% 7]$ เสมอ + +```cpp +#include +using namespace std; + +int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; +string day[] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}; + +int main(){ + int d, m; cin >> d >> m; + for(int i = 0; i < m-1; i++) d += days[i]; + d = (d+2) % 7; + cout << day[d]; + return 0; +} +```