题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
今年的植树节(2012 年 3 月 12 日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题目,看你们谁先猜出来!”
“把我出生的年月日连起来拼成一个 8 位数(月、日不足两位前补 0)正好可以被今天的年、月、日整除!”
他想了想,又补充到:“再给个提示,我是 6 月出生的。”
根据这些信息,请你帮小明算一下,他叔叔的出生年月日。
格式是年月日连成的 8 位数。例如,如果是 1948 年 6月 12 日,就写:19480612。
问题分析
已知条件:月份已知,天份可能的取值已知(1-30),年份未知但是必定在2012以前,所以查找时从年份2012向前查找,日期1-30查找每查找一个都能得到一个数字,此数字=年份*10000+月份*100+天数;验证这一个数字能否同时被2012,3,12整除,如果能够此数字就是我们要找的日期。
代码实现
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int year;//记录年份
int month=6;//月份已知
int day=1;//天数
for(year=2012;;year--){//年份从2012年向前查找,找到的第一个必定是日期最近的
int num=0;//记录年份月份天数构成的数字
for(;day<=30;day++){//因为6月有30天所以此人出生的日期只能是1-30之间的一个数
num=year*10000+month*100+day;//构造数字
if(num%2012==0&&num%3==0&&num%12==0){//验证能否同时被2012,3,12整除
printf("%d",num);//输出结果
return 0;//程序结束
}
}
day=1;
}
return 0;
}
这是一道编程题,要求根据已知的2012年3月12日的植树节,以及题目中的条件,遍历年份从2012年前推,寻找一个6月出生的人的出生日期,该日期能被当年、当月、当日整除。通过循环和条件判断,最终计算并输出这个8位数的日期。
2986

被折叠的 条评论
为什么被折叠?



