题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
曾有邪教称 19991999 年 1212 月 3131 日是世界末日。当然该谣言已经不攻自破。
还有人称今后的某个世纪末的 1212 月 3131 日,如果是星期一则会…
有趣的是,任何一个世纪末的年份的 1212 月 3131 日都不可能是星期一!!
于是,“谣言制造商”又修改为星期日…
19991999 年的 1212 月 3131 日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即 xx99xx99 年)的 1212 月 3131 日正好是星期天(即星期日)?
请回答该年份(只写这个 44 位整数,不要写 1212 月 3131 等多余信息)
运行限制
最大运行时间:1s
最大运行内存: 128M
#include <iostream>
using namespace std;
int isyear(int n)
{
if(n%400==0||(n%4==0&&n%100!=0))
return 1;
return 0;
}
int main()
{
// 请在此输入您的代码
long long int sum=5; //因为1999的12月31号是星期五,所以sum从5开始计数
for(int i=2000;i<=9999;i++)
{
int a=i%10; //取出年份的后两位,保证都是9
int b=i/10%10;
if(isyear(i)==1)
{
sum+=366;
if(sum%7==0&&a==9&&b==9)
{
cout<<i<<endl;
return 0;
}
}
else
{
sum+=365;
if(sum%7==0&&a==9&&b==9)
{
cout<<i<<endl;
return 0;
}
}
}
return 0;
}
考试前一天的晚上,祝自己明天考试顺利。