链接:http://bailian.openjudge.cn/xly2019/B/
解题思路:
闰年判断方法:能被4整除但不能被100整除,或者能被400整除。
1900年1月1日是周一。
#include<bits/stdc++.h>
using namespace std;
bool judge(int y)
{
if((y%400==0)||(y%4==0&&y%100!=0))
return true;
return false;
}
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
//freopen("t.txt","r",stdin);
int y,m;
printf("Sun Mon Tue Wed Thu Fri Sat\n");
scanf("%d%d",&y,&m);
int sum=0;
for(int i=1900;i<y;i++)
{
if(judge(i))
sum+=366;
else
sum+=365;
}
if(judge(y)) month[2]++;
for(int i=1;i<m;i++)
sum+=month[i];
sum++;
sum%=7;
for(int i=0;i<sum;i++)
printf(" ");
int t=0;
for(int i=sum;i<7;i++)
{
t++;
if(i==sum)
printf("%3d",t);
else
printf("%4d",t);
}
cout<<endl;
for(int i=t+1;i<=month[m];i++)
{
if((i-t-1)%7==0) printf("%3d",i);
else printf("%4d",i);
if((i-t)%7==0) cout<<endl;
}
return 0;
}