红头肖是什么生肖?
首先,要理解这个问题其实要倒过来思考,即先找哪些年份有红头肖(也就是生肖是红的),然后再看这一年出生的人是什么属相。 这显然是一个计算的问题,我们可以通过计算机代码来实现。 但是这里需要引入一个概念——闰年,因为2017年是平年,全年只有365天,而2018年是闰年,全年一共有366天。而在计算机中,整年的天数都是存储为2位的整数,1代表闰年、0代表平年。因此只要记住19年里有7个闰年,就可以知道哪年是闰年或者平年了。 然后我们按照如下方式生成每一年有没有“红头肖”:
1.判断这一年的二月是不是闰月;如果是的话,那么本年的“红头肖”数目加上1;
2.循环判断这一年的每个月份里,农历的月初一是否有“红头肖”,如果有的话,继续判断这一天的日期是否是月末最后一天,如果是则计数加一,否则不变;
3.循环判断该月是否有“红头肖”,直到该月没有初一日或者月末一天为止。 对以上算法的流程进行总结,就是: 没有「红头肖」→「存在『红头肖』且『红头肖』为奇数→今年『红头肖』数量为奇数+1」, 没有「红头肖」→「不存在『红头肖』或『红头肖』为偶数→今年『红头肖』数量保持为偶数」。
根据以上的算法,我们就能够很容易写出实现这个功能的代码了。 最后,为了便于测试,我们可以预先设置一个条件来过滤掉「龙」「兔」等不可能出现「红头肖」的属相,这样测试起来更方便。