算法提高 日期计算

xiaoxiao2021-02-28  101

算法提高 日期计算   时间限制:1.0s   内存限制:256.0MB      问题描述   已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。 输入格式   输入只有一行   YYYY MM DD 输出格式   输出只有一行   W 数据规模和约定   1599 <= YYYY <= 2999   1 <= MM <= 12   1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期   1 <= W <= 7,分别代表周一到周日 样例输入 2011 11 11 样例输出 5 #include<iostream> using namespace std; int main() { int dt[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}}; int y,m,d,j; int y1=2011,m1=11,d1=11; int today=5; cin>>y>>m>>d; while(1) { if(y>=3000||y<=1598) break; if(y1==y&&m1==m&&d1==d) break; if(y1%4==0&&y10!=0||y1@0==0) j=1; else j=0; if(y>=2011&&m>=11&&d>11||y>2011) { d1++; if(d1>dt[j][m1]) { m1++; d1=1; } if(m1>12) { m1=1; y1++; } today++; if(today>7) today=1; } else { d1--; if(d1<=0) { m1--; if(m1<=0) { m1=12; y1--; } d1=dt[j][m1]; } today--; if(today<=0) today=7; } } cout<<today<<endl; return 0; }
转载请注明原文地址: https://www.6miu.com/read-46752.html

最新回复(0)