题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
今年的植树节(2012 年 3 月 12日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题目,看你们谁先猜出来!”
“把我出生的年月日连起来拼成一个 8位数(月、日不足两位前补 0)正好可以被今天的年、月、日整除!”
他想了想,又补充到:“再给个提示,我是 6 月出生的。”
根据这些信息,请你帮小明算一下,他叔叔的出生年月日。
格式是年月日连成的 88 位数。例如,如果是 1948 年 6 月 12 日,就写:19480612。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
【代码注释】
#include<bits/stdc++.h>
using namespace std;
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int n)
{
if(n%4==0&&n%100!=0||(n%400)==0)
return true;
return false;
}
int main()
{
int year,month,day;
int birth=19000101;
while(1)
{
if(birth%2012==0&&birth%12==0&&month==6)
{
break;
}//找到了就返回
birth++;
year=birth/10000;
month=birth/100%100;
day=birth%100;
if(day>m[month])
{
month++;
if(month>12)
{
year++;
if(check(year))
m[2]=29;
else
m[2]=28;
month=1;
day=1;
}
else
{
day=1;
}
birth=year;
birth=birth*100+month;
birth=birth*100+day;
}
}
cout<<birth;
return 0;
}
【答案】19550604