สมมติว่าเรามีตัวเลขสองตัว 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