经典的日期问题
#include<iostream>
#include<cstring>
using namespace std;
int months[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool is_leap(int year)
{
if(year % 400 == 0 || year % 4 == 0 && year % 100) return true;
return false;
}
int get_day(int year, int month)
{
int s = months[month];
if(month == 2 && is_leap(year)) s ++;
return s;
}
int main()
{
int a, b, c, y1, y2;
cin >> a >> b >> c >> y1 >> y2;
int days = 0;
for(int year = 1850; year <= y2; year ++){
for(int month = 1; month <= 12; month ++){
if(year >= y1 && month == a){
int w = (1 + days) % 7, cnt = 0;
for(int d = 1; d <= get_day(year, month); d ++){
if(w == c - 1){
cnt ++;
if(cnt == b){
printf("%04d/%02d/%02d\n", year, month, d);
break;
}
}
w = (w + 1) % 7;
}
if(cnt < b) cout << "none" << endl;
}
days += get_day(year, month);
}
}
return 0;
}