Giả sử chúng ta có hai số m và d. Hãy xem xét một lịch trong đó các ngày trong tuần được biểu thị dưới dạng cột và hàng là ngày hiện tại. Chúng ta muốn biết có bao nhiêu cột trong lịch cho tháng m và ngày trong tuần của ngày đầu tiên của tháng đó d (Giả sử rằng năm đó không phải là năm nhuận).
Vì vậy, nếu đầu vào giống như m =11; d =6, thì đầu ra sẽ là 5, vì ngày 1 tháng 11 là thứ bảy và 5 cột là đủ.
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
Define an array a of size: 13 := { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } return (a[m] + d + 5) / 7
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#include <bits/stdc++.h> using namespace std; int solve(int m, int d){ int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; return (a[m] + d + 5) / 7; } int main(){ int m = 11; int d = 6; cout << solve(m, d) << endl; }
Đầu vào
11, 6
Đầu ra
5