สมมติว่าเรามีตัวเลขสองตัว m และ d พิจารณาปฏิทินที่แสดงวันในสัปดาห์เป็นคอลัมน์และแถวเป็นวันปัจจุบัน เราต้องการทราบจำนวนคอลัมน์ในปฏิทินที่ควรระบุเดือน m และวันทำงานของวันแรกของเดือน d (สมมติว่าปีไม่ใช่ปีอธิกสุรทิน)
ดังนั้น ถ้าอินพุตเป็น m =11; d =6 จากนั้นผลลัพธ์จะเป็น 5 เนื่องจากวันที่ 1 พฤศจิกายนเป็นวันเสาร์ และ 5 คอลัมน์ก็เพียงพอแล้ว
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
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
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#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; }
อินพุต
11, 6
ผลลัพธ์
5