点击打开链接
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<cstring>
#include<string>
#include<algorithm>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<string>
#include<map>
#define LL long long
#define inf 0x3f3f3f3f
#define mod 1e9+7
using namespace std;
int day1[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int sum=0;
void solve(int y)
{
if((y%400==0)||(y%4==0&&y%100!=0)){
sum+=366;
}
else sum+=365;
}
void solve1(int y,int m)
{
if((y%400==0)||(y%4==0&&y%100!=0)){
for(int i=0;i<(m-1);i++){
sum+=day1[1][i];
}
}
else{
for(int i=0;i<(m-1);i++){
sum+=day1[0][i];
}
}
}
int main()
{
int i=0,year=0,month=0,f=0,x=0;
scanf("%d %d",&year,&month);
for(i=1900;i<year;i++){
solve(i);
}
solve1(year,month);
sum=(sum+1)%7;
printf("Sun Mon Tue Wed Thu Fri Sat\n");
for(i=1;i<=sum;i++){
printf(" ");
f++;
}
if((year%400==0)||(year%4==0&&year%100!=0)){
x=1;
}
else{
x=0;
}
for(i=1;i<=day1[x][month-1];i++){
printf("%3d ",i);
f++;
if(f==7){
printf("\n");
f=0;
}
}
return 0;
}