判断输入年份是否为闰年的另一种方法

简介: 最近,我在网上看到了一道题目:输入一个从1901年开始到今年截止的年份,判断该年份是否为闰年?对于这个题目,大家应该不会陌生,很多人在学校就应该已经见过了。

最近,我在网上看到了一道题目:输入一个从1901年开始到今年截止的年份,判断该年份是否为闰年?

对于这个题目,大家应该不会陌生,很多人在学校就应该已经见过了。通常的做法是判断输入的年份是否满足下列两个条件之一:

1) 能够被4整除但不能被100整除。

2) 能够被400整除。

如果满足两个条件中的任意一个,那么该年份就为闰年。

程序流程如下图所示:

 

程序代码如下:

/**********************************************************************
* 版权所有 (C)2015, Zhou Zhaoxiong。
*
* 文件名称:JudgeLeapYear.c
* 文件标识:无
* 内容摘要:判断输入的年份是否是闰年
* 其它说明:无
* 当前版本:V1.0
* 作    者:Zhou Zhaoxiong
* 完成日期:20150422
*
**********************************************************************/
#include 
  
   


// 重定义数据类型
typedef signed   int   INT32;
typedef unsigned int   UINT32;


/**********************************************************************
* 功能描述:主函数
* 输入参数:无
* 输出参数:无
* 返 回 值:无
* 其它说明:无
* 修改日期        版本号     修改人            修改内容
* -------------------------------------------------------------------
* 20150422        V1.0     Zhou Zhaoxiong        创建
***********************************************************************/
INT32 main()
{
        UINT32 iYear = 0;
	
	printf("Please input a year: ");
        while (1)
	{
	        scanf("%d", &iYear);	
		if (iYear > 1900 && iYear 
  
  

 

现在,我们换一种思路来考虑。1901年开始到今年截止的年份中,闰年为1904、1908、1912等等,它们之间相差4年。这样,我们就可以用某个年份作为基准,只要输入的年份与基准年份之间相差4年,那么就可以断定该年份为闰年。这里,我们选用1900年为基准,只要输入的年份与1900的差为4的整数倍,那么该年份就为闰年。

基于此思路,程序流程图如下:

程序代码如下:

/**********************************************************************
* 版权所有 (C)2015, Zhou Zhaoxiong。
*
* 文件名称:JudgeLeapYear.c
* 文件标识:无
* 内容摘要:判断输入的年份是否是闰年
* 其它说明:无
* 当前版本:V1.0
* 作    者:Zhou Zhaoxiong
* 完成日期:20150422
*
**********************************************************************/
#include 
  
   


// 重定义数据类型
typedef signed   int   INT32;
typedef unsigned int   UINT32;


/**********************************************************************
* 功能描述:主函数
* 输入参数:无
* 输出参数:无
* 返 回 值:无
* 其它说明:无
* 修改日期        版本号     修改人            修改内容
* -------------------------------------------------------------------
* 20150422        V1.0     Zhou Zhaoxiong        创建
***********************************************************************/
INT32 main()
{
        UINT32 iYear = 0;
	
	printf("Please input a year: ");
	while (1)
	{
	        scanf("%d", &iYear);	
		if (iYear > 1900 && iYear 
  
  

 

不管是上面的哪种解决办法,程序本身并不复杂,但这样一种转换问题求解思路的想法却广泛应用于实际的软件开发工作中。也就是说,很多时候,实现软件需求的办法并非只有一个,我们要多思考、善于从不同的角度分析问题,这样才能够找到最佳的实现途径。

 

 

目录
相关文章
|
8月前
输入年份判断是否为闰年
输入年份判断是否为闰年
95 0
输入年份判断是否为闰年
|
3月前
用户输入年份,判断该年份是否为闰年
【10月更文挑战第18天】用户输入年份,判断该年份是否为闰年。
72 1
|
3月前
判断闰年
【10月更文挑战第15天】判断闰年。
58 2
|
4月前
|
人工智能
判断任意输入年份是闰年还是普通闰年还是平年
判断任意输入年份是闰年还是普通闰年还是平年
66 0
|
8月前
30.输入年月日,判断它是该年的第多少天
30.输入年月日,判断它是该年的第多少天
60 5
|
8月前
判断闰年的两种常见方法
判断闰年的两种常见方法
394 1
|
8月前
|
存储 弹性计算 运维
|
8月前
|
Python
判断用户输入的年份是否为闰年:
判断用户输入的年份是否为闰年:
|
Python
输入年月日判断是本年的第多少天
输入年月日判断是本年的第多少天
168 0
|
Java
判断今年是平年还是闰年
判断今年是平年还是闰年
251 0